2011-09-27 49 views
0

我在我的程序中使用3个在java代码中创建的列表视图。我使用扩展实现onitemclicklistener的Activity。现在,如何分别为每个listviwe制作不同的项目点击事件? 任何帮助表示感谢,并提前感谢。如何使用多个列表项单击扩展Activity实现onClicklistener

+0

你能详细解释一下吗?与代码..? – Ronnie

+0

当然。看到我的代码在这个链接:http://pastebin.com/fGV10fh5 –

回答

1
public void onItemClick(AdapterView<?> adapter, View view, int index, long id) 
{ 
    switch(view.getId()) 
    { 
     case <listview1 Id> : //call method 1; break; 

     case <listview2 Id> : //call method 2; break; 

     case <listview3 Id> : //call method 3; break; 

    } 
} 

这是一个糟糕的method.You应该实现不同类listeners.So可以模块化代码。

+0

任何示例代码作为链接? –

+0

我创建所有列表视图动态(即)没有ID。那么如何实施? –

+0

hey @PattabiRaman,你可以在创建视图时使用setTag(int key,Object tag),在检查视图时使用getTag(int key)。 – dinidu

0

不要在Activity中实现OnItemClickListener,而应使用单独的类,例如匿名类。

或者使用单个侦听器,并通过callback method中的view参数检测事件的来源。

0

如果你看到

onItemClick(AdapterView<?> parent, View view, int position, long id) 

它有父适配器视图。因此您可以检查点击哪个适配器视图。

我个人觉得不要在这种类型的实例上实现onItemClickListner。

使用setOnItemClickListener(listener1)...等等这3个listViews。它更好。

您可以为每个listView编写单独的侦听器。

HTH。

0

您需要为每个ListView创建一个新的onItemClickLIstener。

你这样做是这样的:

listView1.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapter, View view, int index, long id) { 

     } 
    }); 
相关问题