2 hcg 21 hcg_21 于 2013.01.18 17:39 提问

在 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
curie_87   2013.01.22 10: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;
}
}
wuwo333
wuwo333   2013.01.19 13:14

在Adapter中,查找所用子项布局中的imagebutton,然后每个添加listen监听,就Ok了!好久没做安卓了!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
动态改变ActionBar的图标
Action View控件可以替换Action bar的Action按钮图标。可以利用这个特点将某个Action项替换成一个ProgressBar。此代码展示了如何使用Action View
action中的list在JSP页面如何显示问题的总结
方法-:直接在action设置get和set方法,然后在jsp页面中使用iterator迭代输出,但是一定要注意格式。就是被这个格式搞了一下午。 //使用标签 ${id.name} //使用EL表达式 或者是不声明id,直接 方法2:把list存入request中,显示方法和jsp页面相同。但个人认为是多此一举。因为既然struts提供了参数的拦截器,我们为
执行完删除操作后提示alert后返回删除后的action
这是一个success.jsp页面。需要用到的javascript语句为:out.print("alert('"+msg+"');window.location.href='listtables.action';");删除成功时,msg为“删除成功”;效果为:*(删除的记录为 倒数第二条:10步学习javascript.pdf)删除前:删除成功时: 删除后的页面:
Unity C# 子线程Action发送到主线程执行
今天去面试..面试官竟然说子线程的Action不能发送到主线程执行... ...废话不说上干货using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using System.Threading; public class ActionDemo : MonoBehav...
android在list view中如何action的实现
原问题来自于CSDN问答频道,更多解决方案见:http://ask.csdn.net/questions/1173 问题描述 程序里的listview中有3个image buttons:play、detail、buy。 每一个 image button都有各自的action。那么在 listview 中对每一个 image button 怎样执行 onclick action? 我使用的代
Eclipse Action与Command的区别
eclipse的action和command都能够执行一段确定的代码。通过一个工具栏上的图标、菜单项都可以触发执行。Action框架已经被验证过了,集成的非常紧密,而且很容易实现。但是为什么要废弃action改成command呢? Actions     Actions主要关注的是表现形式,而且所有代码都在action中。尽管有些代码也分布在action代理中,但是本质上还是act
Struts2框架action传入页面list对象集合,修改对象集合数据后提交给action
我们最常见的就是在页面遍历一个集合,每次只能操作一条数据。今天就教大家同时修改多条数据的方法: 首先,在action中定义对象list集合,并设置get,set方法,例如: private List tplist; public List getTplist() {         return tplist;     }  public void setTplist(List t
JSP中遍历显示从Action中接收到的list
假设在Action中有一个User类型的List:userList 我需要在JSP中遍历显示list中的user信息,示例代码如下: 其中, id="user": user为遍历后对象的别名,名称无限制 value="userList":userList为遍历对象在Action中的名字,需要与Action中的名
struts2中的jsp页面通过iterator调取后台action中的list集合
jsp页面: 数据展示                                                                                   action页面: package com.market.action; import java.text
Struts2 Action中传List值到jsp页面
经过一下午的尝试,发现以下几种方式 第一种: 1>定义List变量 private List userList; userList有get/set方法 private List list = new ArrayList(); public List getList() { return list; } public void setList(List list) {