2016-04-17 3 views
-1

Singer Объект:Android - Передача объекта между деятельностью 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 Активность:

Певица певица = (Singer) getIntent() getSerializable ("Allsongs. «);

Отправка строк из активности в другую деятельность работала, но когда я захотел передать объект, это начало, дайте мне эрозию.

+2

Вы не можете передать объект с помощью намерения, вы должны сделать его parcelable объекта и чем пройти через умысел !! –

+0

какие именно ошибки? –

ответ

2

Используйте связку:

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

intent.putExtras(data); 

Тогда в другой деятельности:

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

Разве это не так, как делать '' 'intent.putExtra (« Allsongs », Obj);' '' –

+0

yhaa уже работает, спасибо. –