项目

时间:2016-01-03 00:26:38

标签: android listview android-arrayadapter

家伙!我有一个ListView,当然还有一个带有此按钮内的按钮的项目。我想知道如何设置一个监听器到该按钮,然后如何从精确位置的列表项中收集数据? List item

我想按下“like button”然后收集有关ArrayList的确切元素的信息。我怎么知道哪个位置是那个确切的元素?

这是一个Adapter类。

public class PlayerListAdapter extends ArrayAdapter<Audio> {
private LayoutInflater layoutInflater;

public PlayerListAdapter(Context aContext, ArrayList<Audio> listData) {
    super(aContext, 0, listData);
    layoutInflater = LayoutInflater.from(aContext);
}

public View getView(int position, View convertView, ViewGroup parent) {
    ViewAudio viewAudio;

    if (convertView == null) {
        convertView = layoutInflater.inflate(R.layout.item_list_audio, null);
        viewAudio = new ViewAudio();
        viewAudio.song_tittle = (TextView) convertView.findViewById(R.id.song_tittle);
        viewAudio.song_author = (TextView) convertView.findViewById(R.id.song_author);
        viewAudio.song_duration = (TextView) convertView.findViewById(R.id.song_duration);
        convertView.setTag(viewAudio);
    } else {
        viewAudio = (ViewAudio) convertView.getTag();
    }

    Audio audio = (Audio) getItem(position);
    viewAudio.song_tittle.setText(audio.getTitle());
    viewAudio.song_author.setText(audio.getArtist());
    viewAudio.song_duration.setText(Duration.secondsToTimer(audio.getDuration()));

    return convertView;
}

 static class ViewAudio {
     TextView song_tittle;
     TextView song_author;
     TextView song_duration;
 }

1 个答案:

答案 0 :(得分:0)

public View getView(final int position,View convertView,ViewGroup parent){     ViewAudio viewAudio;

if (convertView == null) {
    convertView = layoutInflater.inflate(R.layout.item_list_audio, null);
    viewAudio = new ViewAudio();
    viewAudio.song_tittle = (TextView) convertView.findViewById(R.id.song_tittle);
    viewAudio.song_author = (TextView) convertView.findViewById(R.id.song_author);
    viewAudio.song_duration = (TextView) convertView.findViewById(R.id.song_duration);
    convertView.setTag(viewAudio);
} else {
    viewAudio = (ViewAudio) convertView.getTag();
}

Audio audio = (Audio) getItem(position);
viewAudio.song_tittle.setText(audio.getTitle());
viewAudio.song_author.setText(audio.getArtist());
viewAudio.song_duration.setText(Duration.secondsToTimer(audio.getDuration()));
button.setOnClickListener(new OnClickListener(){
     @Override
     public void onClick(View v){
          Log.e("position", "The position here is" + position);
          //TODO you can get your audio data by listData.get(position) here
     }
});
return convertView;

}