gpt4 book ai didi

android - 如何将两个适配器设置为一个列表?

转载 作者:行者123 更新时间:2023-11-29 22:20:14 24 4
gpt4 key购买 nike

我在安卓系统工作。我正在创建一个音乐应用程序。在此应用程序中,我想将歌曲名称和艺术家姓名显示到列表中。 这是我的代码:-

 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

提前谢谢你。

最佳答案

我不知道你想达到什么目的。您的两个适配器都有相同的代码。为什么不创建一个具有两个适配器值的适配器。

刚看到你编辑的问题

创建一个自定义适配器并扩充具有两个 TextView 的布局 - 一个用于艺术家,一个用于歌曲。

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;

}

关于android - 如何将两个适配器设置为一个列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7429420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com