【问题标题】:ListView, Button inside itemListView,项目内的按钮
【发布时间】:2016-01-03 00:26:38
【问题描述】:

伙计们!我有一个 ListView,当然还有一个在这个列表中有一个按钮的项目。我想知道如何为该按钮设置一个侦听器,然后如何从列表项的确切位置收集数据? List item

我想按下那个“赞”按钮,然后收集 ArrayList 的确切元素的信息。我怎么知道那个确切的元素在哪个位置?

这是一个适配器类。

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

【问题讨论】:

    标签: android listview android-arrayadapter


    【解决方案1】:

    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;
    

    }

    【讨论】:

    • 我怎样才能调用那个按钮?
    猜你喜欢
    • 2016-11-16
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多