Passaggio di oggetti di oggetti tra attività

Sto cercando di passare un arrayslist di oggetti tra due attività, ma la mia applicazione si schiaccia alla seconda attività. Qualcuno può aiutarmi a risolvere questo problema …

Ecco il mio codice dalla mia prima attività:

  • Come caricare i link webview all'interno di questa stessa webview Android
  • get la posizione di un'image dopo aver trascinato in android
  • Vista orizzontale di scorrimento rileva la pressione lunga
  • Come filtrare un nome di tag in Eclipse LogCat viewer
  • WebView in ScrollView: "Guarda troppo grande per adattarsi alla cache di disegno" - come rielaborare il layout?
  • Edizione nel file jar di achartengine
  • Intent i = new Intent(); Bundle b = new Bundle(); b.putParcelableArrayList("songs",(ArrayList<? extends Parcelable>) albumsArray.get(position).getSongs()); Log.v("--", "OK"); i.putExtras(b); i.setClass(LatestAlbums.this, AlbumDetails.class); startActivity(i); 

    E il codice della seconda attività:

     songs=new ArrayList<Songs>(); Bundle b = this.getIntent().getExtras(); if(b!=null) songs = b.getParcelable("songs"); Log.v("--", songs.size()+""); 

    E la mia output logcat:

     04-03 16:37:03.513: E/AndroidRuntime(6576): FATAL EXCEPTION: main 04-03 16:37:03.513: E/AndroidRuntime(6576): java.lang.RuntimeException: Parcel: unable to marshal value com.musicapp.objects.Songs@419489e8 04-03 16:37:03.513: E/AndroidRuntime(6576): at android.os.Parcel.writeValue(Parcel.java:1137) 04-03 16:37:03.513: E/AndroidRuntime(6576): at android.os.Parcel.writeList(Parcel.java:524) 04-03 16:37:03.513: E/AndroidRuntime(6576): at android.os.Parcel.writeValue(Parcel.java:1097) 04-03 16:37:03.513: E/AndroidRuntime(6576): at android.os.Parcel.writeMapInternal(Parcel.java:493) 04-03 16:37:03.513: E/AndroidRuntime(6576): at android.os.Bundle.writeToParcel(Bundle.java:1612) 04-03 16:37:03.513: E/AndroidRuntime(6576): at android.os.Parcel.writeBundle(Parcel.java:507) 04-03 16:37:03.513: E/AndroidRuntime(6576): at android.content.Intent.writeToParcel(Intent.java:6147) 04-03 16:37:03.513: E/AndroidRuntime(6576): at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1613) 04-03 16:37:03.513: E/AndroidRuntime(6576): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1379) 04-03 16:37:03.513: E/AndroidRuntime(6576): at android.app.Activity.startActivityFromChild(Activity.java:3458) 04-03 16:37:03.513: E/AndroidRuntime(6576): at android.app.Activity.startActivityForResult(Activity.java:3210) 04-03 16:37:03.513: E/AndroidRuntime(6576): at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:817) 04-03 16:37:03.513: E/AndroidRuntime(6576): at android.app.Activity.startActivity(Activity.java:3297) 04-03 16:37:03.513: E/AndroidRuntime(6576): at com.outsourcefarm.musicagratis.activities.LatestAlbums$4$1.onItemClick(LatestAlbums.java:232) 04-03 16:37:03.513: E/AndroidRuntime(6576): at android.widget.AdapterView.performItemClick(AdapterView.java:292) 04-03 16:37:03.513: E/AndroidRuntime(6576): at android.widget.AbsListView.performItemClick(AbsListView.java:1058) 04-03 16:37:03.513: E/AndroidRuntime(6576): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2514) 04-03 16:37:03.513: E/AndroidRuntime(6576): at android.widget.AbsListView$1.run(AbsListView.java:3168) 04-03 16:37:03.513: E/AndroidRuntime(6576): at android.os.Handler.handleCallback(Handler.java:605) 04-03 16:37:03.513: E/AndroidRuntime(6576): at android.os.Handler.dispatchMessage(Handler.java:92) 04-03 16:37:03.513: E/AndroidRuntime(6576): at android.os.Looper.loop(Looper.java:137) 04-03 16:37:03.513: E/AndroidRuntime(6576): at android.app.ActivityThread.main(ActivityThread.java:4440) 04-03 16:37:03.513: E/AndroidRuntime(6576): at java.lang.reflect.Method.invokeNative(Native Method) 04-03 16:37:03.513: E/AndroidRuntime(6576): at java.lang.reflect.Method.invoke(Method.java:511) 04-03 16:37:03.513: E/AndroidRuntime(6576): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787) 04-03 16:37:03.513: E/AndroidRuntime(6576): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554) 04-03 16:37:03.513: E/AndroidRuntime(6576): at dalvik.system.NativeStart.main(Native Method) 

  • Il tempo del timer non cambia come variabile?
  • Come si possono fare i toast solo se l'applicazione è in primo piano?
  • Android imposta l'altezza e la width della visualizzazione personalizzata in modo programmato
  • Ottieni l'object JSON nidificato con GSON usando il retrofit
  • come fare una visualizzazione di elenco per visualizzare solo 3 elementi
  • NullPointerException durante l'utilizzo del mediaplayer di Android
  • 4 Solutions collect form web for “Passaggio di oggetti di oggetti tra attività”

    Dovresti mettere in atto la tua class Song implementare Parcelable .

    Provate qui sotto

     intent.putParcelableArrayListExtra("key", ArrayList<T extends Parcelable> list); startActivity(intent); 

    Recuperalo

     getIntent().getParcelableArrayListExtra("key"); 

    Passare arrayslist di oggetti definiti dall'utente a Intent android . Controlla la risposta di Sajmon

    Secondo le osservazioni di Sajmon, la class Song deve implement Parcelable

     Intent intent=new Intent(ActivityFrom.this,ActivityTo.class); intent.putExtra("StringKey",arraysList); startActivity(intent); 

    e recuperare

     ArrayList<String> myList = (ArrayList<String>) getIntent().getSerializableExtra("StringKey"); 
      i.setClass(LatestAlbums.this, AlbumDetails.class); i.putStringArrayListExtra("list", your song list); startActivity(i); 

    Per get l'elenco di arrays nell'attività.

     ArrayList<String> fetchList= new ArrayList<String>(); fetchList= getIntent().getStringArrayListExtra("list"); 

    Spero che questo ti aiuterà.

    Per ulteriori riferimenti utilizzare questo collegamento .

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.