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条)

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站