模拟onitemclick上的点击

时间:2013-01-29 08:22:40

标签: android

我已经有了onitemclickListener并且它有效,

list.setOnItemClickListener( new OnItemClickListener()
{
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3){
         ...
     }
});

但是,我需要从不同的按钮实现相同的功能。

如何引用我的列表中已存在的onitemclickListener

我不想复制所有代码并再次使用它,因为它大约有500行。

6 个答案:

答案 0 :(得分:18)

performItemClick这样做。

list.performItemClick(list.getChildAt(pos), pos, list.getItemIdAtPosition(pos));

答案 1 :(得分:3)

在单独的方法中重构您的代码,并从onItemClickonClick中调用该方法。

如果您的代码需要所选项目,请将其作为onItemClick中的参数传递。在您的按钮onClick中,您必须查看ListView.getCheckedItemIds,因为列表视图一次可以选择多个项目,并根据任何条件将您的逻辑应用于您想要的项目

答案 2 :(得分:0)

创建您自己的OnItemClickListener课程,该课程使用您已编写的代码,并在您的通话中使用该代码list.setOnItemClickListener(new myOnClickListener())

答案 3 :(得分:0)

需要创建一个OnItemClickListener对象并在需要时使用它:

OnItemClickListener listener =  new OnItemClickListener(){
                 public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
                 {
                 ...
                 }
}

随时随地:

list.setOnItemClickListener(listener);

答案 4 :(得分:0)

在布局xml中注册onItemClickListener并在您的活动中创建一个通用方法。

答案 5 :(得分:0)

我看到两个解决方案,要么你可以编写一个通用函数,并在单击任一按钮时调用此函数。另一种解决方案是在单击第二个按钮然后调用performClick函数时获取第一个按钮的视图。

public void Click2()
{
 Button b = (Button)findViewById(R.id.button1);

 b.performClick();

}