我已经有了onitemclickListener
并且它有效,
list.setOnItemClickListener( new OnItemClickListener()
{
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3){
...
}
});
但是,我需要从不同的按钮实现相同的功能。
如何引用我的列表中已存在的onitemclickListener
?
我不想复制所有代码并再次使用它,因为它大约有500行。
答案 0 :(得分:18)
有performItemClick这样做。
list.performItemClick(list.getChildAt(pos), pos, list.getItemIdAtPosition(pos));
答案 1 :(得分:3)
在单独的方法中重构您的代码,并从onItemClick
和onClick
中调用该方法。
如果您的代码需要所选项目,请将其作为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();
}