2011-09-15 20 views
1

我正在android中工作。我正在創建一個音樂應用程序。在這個應用程序中,我想將歌曲的標題和藝術家的名字顯示在列表中。 這是我的代碼: -如何設置兩個適配器到列表中?

String[] title_of_song={"title1","title2","title3","title4","title5"}; 
String[] artist_of_song={"artist1","artist2","artist3","artist4","artist5"}; 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.row_button, R.id.TextView_songName, title_of_song); 


ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this, R.layout.row_button, R.id.TextView_byArtist, artist_of_song); 

list.setAdapter(adapter); 
list.setAdapter(adapter1); //**this is creating error** 

這是創建問題列表無法setAdapter兩次。所以請告訴我解決方案,所以我可以設置setAdapter歌曲名稱和藝術家名稱。 這是創建列表無法設置適配器兩次的問題。所以請告訴我解決方案,所以我可以設置setAdapter歌曲名稱和藝術家名稱。

預先感謝您。

+0

title1表演者是artist1等?用另外的話來說,標題和藝術家之間有什麼聯繫? – Selvin

+0

是的,先生,兩者都有關係。意味着每首歌曲有兩個陣列,一個陣列保存歌曲的標題,第二個陣列擁有該歌曲的藝術家名稱。換句話說,如果我使用title_of_song [1]和artist_of_song [1],那麼這些是歌曲1的信息。意味着兩者都是相互關聯的。 –

+0

好,所以當你想顯示它。或者? – user370305

回答

1

我不知道你想達到什麼目的。您的適配器都有相同的代碼。爲什麼不創建具有兩個適配器值的單個適配器。

只看見自己的編輯問題

創建自定義的適配器和膨脹,它有兩個textviews的佈局 - 一個藝術家和一個用於歌曲。

class TaskAdapter extends ArrayAdapter{ 

    ArrayList artist, song; 
    public TaskAdapter(ArrayList songs, ArrayList artist){ 
      this.artist = artist; 
      this.song = songs; 
    }  


    public TaskAdapter(Context context, int textViewResourceId) { 
     super(context, textViewResourceId); 

    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 

     View v = convertView; 
     ViewHolder holder; 
     if(v == null) { 
      LayoutInflater li = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      v = li.inflate(R.layout.custom_list, null); 
      holder = new ViewHolder(); 
      holder.taskId = (TextView)v.findViewById(R.id....); 
      holder.taskDesc = (TextView)v.findViewById(R.id....); 

      v.setTag(holder); 
     } 
     else{ 
      holder = (ViewHolder)v.getTag(); 
     } 

     holder.tArtist.setText(artist.get(position)); 

     holder.tSong.setText(song.get(position));   


     return v; 
    }  

} 
static class ViewHolder { 
    TextView tArtist; 
    TextView tSong;  

} 
+0

沒有先生這兩個適配器是不同的。一個用於獲取歌曲標題列表和一個用於藝術家名稱。這兩個值都正在運行。請幫我先生。 –

+1

謝謝大家......非常感謝你...... –

+0

Paresh先生和Umesh先生的回答,兩者都非常正確......我使用了先前的邏輯並解決了我的問題...... –

0

我建議將標題 - 藝術家添加到一個字符串中,並使用單個適配器或使用兩個單獨的列表。

1

我建議將標題 - 藝術家添加到一個字符串或任何xml中,並使用單個適配器,它將爲您的代碼提供更大的靈活性並提高代碼的可重用性。

相關問題