如何在android上的列表视图中执行onListItemClick

如何在android上的列表视图中执行onListItemClick,android,android-layout,Android,Android Layout,我有一个ListView,它有三个ImageButtons和TextViews、ImageView。如何执行onListItem单击列表视图中的以执行每个ImageButton的单个操作 public class AndroidThumbnailList extends ListActivity{ .......... ib2=(ImageButton)findViewById(R.id.imageButton2); ib3=(ImageButton)findViewBy

我有一个
ListView
,它有三个
ImageButton
s和
TextView
s、
ImageView
。如何执行
onListItem单击
列表视图中的
以执行每个
ImageButton
的单个操作

public class AndroidThumbnailList extends ListActivity{
    ..........
    ib2=(ImageButton)findViewById(R.id.imageButton2);
    ib3=(ImageButton)findViewById(R.id.imageButton3);
    ib1=(ImageButton)findViewById(R.id.imageButton1);

    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) {
                     .........
            }
    }

    protected void onListItemClick(ListView l, View v, int position, long id) {

        Log.e("video", "called");
        super.onListItemClick(l, v, position, id);
        if(v.equals(ib1)){
             ....
        } 
        if(v.equals(ib2)){
             ....
        }

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

}


请帮帮我。

您必须在
ListAdapter
getView()
中为每个
按钮设置侦听器


检查。

首先,您使用的是
列表视图
还是
线性布局
ListActivity
ListView
一起使用,我看不到您的。您使用了LinearLayout,并提供了自己的
ImageButton
s,这些按钮不是由适配器创建的,因此没有使用
onListItemClick


其次(这只是一种观点,你可以不使用它而让它工作),嗯,你最好在
getView()
中定义项目时定义
OnClickListener
,而不要使用
onlistemClick
,你可以为每个
ImageButton
设置个人
onClick()
事件处理程序

public class AndroidThumbnailList extends ListActivity{
    ..........
    ib2=(ImageButton)findViewById(R.id.imageButton2);
    ib3=(ImageButton)findViewById(R.id.imageButton3);
    ib1=(ImageButton)findViewById(R.id.imageButton1);

    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) {
                     .........
            }
    }

    protected void onListItemClick(ListView l, View v, int position, long id) {

        Log.e("video", "called");
        super.onListItemClick(l, v, position, id);
        if(v.equals(ib1)){
             ....
        } 
        if(v.equals(ib2)){
             ....
        }

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

}

您必须声明上下文的方法(通常是
活动
):


有关更多详细信息,请参阅和的Javadocs

哦,我错过了。你跑得更快+1美元。我的答案是:和这个一样。我实现如下:我得到空指针异常请帮助我类实现OnclickListener{ib1=(ImageButton)findViewById(R.id.image1);ib1.setOnclickListener(this);//空指针异常public void onClickHandler(View v){if(v.getid.equals(R,id.image){…}
public void onClickHandler(View v)