我有一个自定义适配器,该适配器使用艺术家名称填充列表视图。我想单击列表视图艺术家,它将返回我艺术家的歌曲列表。当我单击列表视图并将其与所有歌曲的数组列表进行比较时,我想获取艺术家的字符串值
public void getSongList() {
//retrieve song info
ContentResolver musicResolver = getContentResolver();
Uri musicUri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
musicCursor = musicResolver.query(musicUri, null, null, null, null);
if(musicCursor!=null && musicCursor.moveToFirst()){
//get columns
int titleColumn = musicCursor.getColumnIndex
(android.provider.MediaStore.Audio.Media.TITLE);
int idColumn = musicCursor.getColumnIndex
(android.provider.MediaStore.Audio.Media._ID);
int artistColumn = musicCursor.getColumnIndex
(android.provider.MediaStore.Audio.Media.ARTIST);
//add songs to list
do {
long thisId = musicCursor.getLong(idColumn);
String thisTitle = musicCursor.getString(titleColumn);
String thisArtist = musicCursor.getString(artistColumn);
songs.add(new Song(thisId,thisTitle,thisArtist));}
while (musicCursor.moveToNext());
}
}
artistLV.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Toast.makeText(getApplicationContext(),"am:", Toast.LENGTH_SHORT).show();
ArrayList<Song> temp = new ArrayList<>();
for (Song song : songs){
strong text
if (song.getArtist().equals("Foo Fighters")){
temp.add(song);
}
}
songs = temp;
SongAdapter songAdt = new SongAdapter(getApplication(), songs);
artistLV.setAdapter(songAdt);
}
});
答案 0 :(得分:0)
Song selectedSong = songs.get(i); // this will object of data of the selected song
然后使用
selectedSong.getArtist();
它将返回您选择的歌曲的艺术家
答案 1 :(得分:0)
将这些行添加到onItemClick方法中
TextView artistTextView = (TextView) view.findViewById(R.id.yourTextViewReference);
String artistName= artistTextView.getText().toString();