家伙!我有一个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;
}
答案 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;
}