如何获取从列表视图中选择的项目的字符串值

时间:2018-11-24 14:45:40

标签: android android-studio

我有一个自定义适配器,该适配器使用艺术家名称填充列表视图。我想单击列表视图艺术家,它将返回我艺术家的歌曲列表。当我单击列表视图并将其与所有歌曲的数组列表进行比较时,我想获取艺术家的字符串值

   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);
                }
            });

2 个答案:

答案 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();