如何在android中执行列表视图操作

如何在android中执行列表视图操作,android,Android,在我的应用程序中,我使用列表视图。在列表视图中,我有三个图像按钮(播放、详细信息、购买)。每个图像按钮都有单独的操作。如何对列表视图中的每个图像按钮执行onclick操作 我的代码: public class AndroidThumbnailList extends ListActivity{ .......... public class MyThumbnaildapter extends ArrayAdapter<String>{ public My

在我的应用程序中,我使用列表视图。在列表视图中,我有三个图像按钮(播放、详细信息、购买)。每个图像按钮都有单独的操作。如何对列表视图中的每个图像按钮执行onclick操作

我的代码:

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



}
公共类AndroidThumbnailList扩展了ListActivity{
..........
公共类MyThumbnaildapter扩展了ArrayAdapter{
公共MyThumbnaildapter(上下文上下文,int textViewResourceId,字符串[]对象){
超级(上下文、textViewResourceId、对象);
//TODO自动生成的构造函数存根
}
公共视图getView(int位置、视图转换视图、视图组父视图){
.........
}
}
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
_contentUri=媒体\外部\内容\ URI;
initVideosId();
setListAdapter(新的MythumbNaildAdapter(AndroidThumbnailList.this,R.layout.row,_videosId));
}
}

如何为我的列表视图编写操作。请帮帮我。

您需要编写自己的适配器,为要使用的视图充气,然后为每个图像分配一个OnClick侦听器。下面是我的一个项目中的一些示例代码,它做了一些类似的事情(但带有一个复选框,我在其中添加了一个侦听器)

公共类GroupListAdapter扩展了BaseAdapter{
私人名单组;
//…这里的构造器
@凌驾
public int getCount(){
返回组。size();
}
@凌驾
公共组getItem(int位置){
返回组。获取(位置);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(最终整型位置、视图转换视图、最终视图组父视图){
最终分组=获取项目(位置);
最终视图;
if(convertView==null)
view=LayoutInflater.from(parent.getContext()).flate(R.layout.group,null);
其他的
视图=转换视图;
view.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//单击视图的其余部分时执行操作
}
});
TextView tv=(TextView)view.findViewById(R.id.group\u name);
tv.setText(group.getName());
最终复选框check=(复选框)view.findViewById(R.id.group\u复选框);
check.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//点击时做一些事情
}
});
返回视图;
}

}/P>我写了一个非常类似的响应。我扩展了ListPo活性而不是BaseAdvor,请解释我如何在我的类中实现你的代码。BaseAdvor是部分实现的ListAdvor。它只需要你自己完成所有的工作,只需要你实现4种方法。

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