如果我在一个活动中有2个或更多的列表视图,那么我如何使用onclicklistener?我的意思是我怎么知道用户点击哪一个?2在同一活动中的ListViews
public void onItemClick(AdapterView parent, View v, int position, long id) {
}
上面的代码是我用过,但是当我尝试使用其他的ListView,我无法找到一个方法来检测单击的是哪个列表视图。
任何ideeas解决这个?
如果我在一个活动中有2个或更多的列表视图,那么我如何使用onclicklistener?我的意思是我怎么知道用户点击哪一个?2在同一活动中的ListViews
public void onItemClick(AdapterView parent, View v, int position, long id) {
}
上面的代码是我用过,但是当我尝试使用其他的ListView,我无法找到一个方法来检测单击的是哪个列表视图。
任何ideeas解决这个?
在这种情况下,parent
是itemClick源自的listView。所以你可以做的是为每个ListView保留一个成员变量,并将父对象与这些成员进行比较,以查看哪个列表触发了点击。
所以这里有一个简单的类与我的意思:
public class MyTest extends Activity{
private ListView list1;
private ListView list2;
public void onCreate(Bundle b){
super.onCreate(b);
list1 = new ListView();
list2 = new ListView(); //or findViewById if you declared them in your layout
//the rest of your creation code here
}
public void onItemClick(AdapterView parent, View v, int position, long id) {
if(list1 == parent){
//handle list1 click
}else{
//handle list 2 click
}
}
}
你可以做到这一点,因为这:
listView1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO: click on first listview
}
});
listView2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO: click on second listview
}
});
它很简单, 只有一个列表可以为下正式名单行事一个ListActivity和这个列表(只有这个列表)应该有特殊的列表id(@android:list我认为),所以只需将其他列表的id设置为其他id并设置其setOnItemClickListener来执行任何你想要的操作。我目前正在开发一个带有2个listViews和一个额外列表Fragment的应用程序。
有两种方法可以做到这一点。
实施OnItemClickListener
public class ListViewTest extends Activity implements OnItemClickListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public void onItemClick(AdapterView<?> arg0, View view, int arg2, long arg3) {
if(view ==myListView)1{
}
if(view ==myListView){
}
}
}
设定自己的听众
myListView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO: click on second listview
}
});
成员变量?我真的不明白这意味着什么。我的列表视图一个接一个地被删除,而不是单独的功能。请给我一个前例。 –
它们是否用单独的方法声明是无关紧要的。您只需跟踪实例,以便稍后进行比较。我用一个例子编辑了我的回答。 – Chris
非常感谢!它的工作就像一个魅力,现在我觉得有点愚蠢,因为它很容易,但直到现在我从来没有父母的头:)再次感谢! –