Как получить строковое значение элемента, выбранного из списка - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть специальный адаптер, который заполняет список с именами артистов.Я хочу нажать на исполнителя списка, и он вернет мне список песен исполнителя.Я хочу получить строковое значение исполнителя, когда нажимаю на просмотр списка и сравниваю его с массивом всех песен

   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 голосов
/ 24 ноября 2018

Добавьте эти строки в ваш метод onItemClick

TextView artistTextView = (TextView) view.findViewById(R.id.yourTextViewReference);
String artistName= artistTextView.getText().toString();
0 голосов
/ 24 ноября 2018
Song selectedSong = songs.get(i); // this will object of data of the selected song

, затем используйте

selectedSong.getArtist();

, и он вернет вам исполнителя выбранной вами песни

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...