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 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘