hcg_21 2013-01-18 09:39 采纳率: 0%
浏览 2503
已采纳

在 list view 中如何执行 action?

程序里的listview中有3个image buttons:play、detail、buy。
每一个 image button都有各自的action。那么在 listview 中对每一个 image button 怎样执行 onclick action?
我使用的代码:

public class AndroidThumbnailList extends ListActivity{
      ..........
   public class MyThumbnaildapter extends ArrayAdapter<String>{
      public MyThumbnaildapter(Context context, int textViewResourceId,String[] objects) {
       super(context, textViewResourceId, objects);
            // TODO Auto-generated constructor stub
       }
      public View getView(int position, View convertView, ViewGroup parent) {
           .........
      }
   }

   public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
    _contentUri = MEDIA_EXTERNAL_CONTENT_URI;
    initVideosId();
  setListAdapter(new MyThumbnaildapter(AndroidThumbnailList.this, R.layout.row, _videosId));
  }
}

如何在 list view 创建 action ?

  • 写回答

2条回答

  • Curie-87 2013-01-22 02:25
    关注

    你需要创建自己的 Adapter, 然后 inflate 你想用的视图。然后给每个图像分配一个 OnClick 监听。
    给你一个我之前使用的例子

    public class GroupListAdapter extends BaseAdapter {
    
    private List<Group> groups;
    
    // ... constructors here
    
    @Override
    public int getCount() {
        return groups.size();
    }
    
    @Override
    public Group getItem(int position) {
        return groups.get(position);
    }
    
    @Override
    public long getItemId(int position) {
        return position;
    }
    
    @Override
    public View getView(final int position, View convertView, final ViewGroup parent) {
        final Group group = getItem(position);
    
        final View view;
        if (convertView == null)
            view = LayoutInflater.from(parent.getContext()).inflate(R.layout.group, null);
        else
            view = convertView;
    
        view.setOnClickListener(new OnClickListener() {
    
            @Override
            public void onClick(View v) {
                // do stuff when the rest of the view is clicked
            }
        });
    
        TextView tv = (TextView) view.findViewById(R.id.group_name);
        tv.setText(group.getName());
    
        final CheckBox check = (CheckBox) view.findViewById(R.id.group_checkbox);
        check.setOnClickListener(new OnClickListener() {
    
            @Override
            public void onClick(View v) {
                // do stuff when clicked
            }
        });
    
    
        return view;
    }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog