2016-04-17 11 views
-1

Singer Objekt:Android - Passing Objekt zwischen Aktivitäten erorr

public class Singer implements java.io.Serializable { 

    public String id ; 
    public String name; 
    public HashMap<String,String> songs; 

    public Singer(String name,String id){ 
     this.id=id; 
     this.name=name; 
     this.songs=new HashMap<>(); 

    } 

    public void AddingSong(String songName,String songURL){ 
     this.songs.put(songName,songURL); 
    } 
} 

Mainclass:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       //starting the mediaPlayer Activity with the song url 
       Intent intent = new Intent(getActivity(), songs_page.class); 

       intent.putExtra("name",(String)listView.getAdapter().getItem(position)); 
       intent.putExtra("id", songs.get(listView.getAdapter().getItem(position))); 

       Singer Obj=new Singer("1","Bayan"); 
       Obj.AddingSong("koko","[song URL here]"); 
       intent.putExtra("Allsongs",Obj); 


       startActivityForResult(intent, 0); 
      } 
     }); 

Songs Aktivität:

Singer Sänger = (Singer) getIntent() getSerializable ("Allsongs. ");

Das Senden von Strings von der Aktivität zu einer anderen Aktivität funktionierte, aber wenn ich ein Objekt übergeben wollte, gibt es einen Startbefehl.

+2

Sie kann nicht das Objekt über Absicht passieren, müssen Sie es parcel Objekt machen und als über Absicht passieren !! –

+0

Welche Fehler genau? –

Antwort

2

ein Bündel Verwendung:

Bundle data = new Bundle(); 
data.putSerializable("Allsongs", yourObject); 

intent.putExtras(data); 

Dann in der anderen Tätigkeit:

Intent intent = getIntent(); 
Bundle data = intent.getExtras(); 
Singer singer =(Singer) data.getSerializable("Allsongs"); 
+0

Ist es nicht dasselbe wie '' 'intent.putExtra (" Allsongs ", Obj) zu tun;' ' –

+0

yhaa schon funktioniert, danke. –

Verwandte Themen