2012-08-07 73 views
0

我有一个列表视图,显示每个行/项目(列表项可以有例如2或3个按钮)的视图列表。所有项目都设置为不可调焦,不可点击。这种方式点击了对我的ListView OnClick的项目调用。我现在想要做的就是在真正点击的视图上调用performClick()(它没有做任何事情,因为它被设置为不可聚焦/可点击)。这可能吗?我试图找到一种方法来获取基于点击位置的视图,但没有找到任何东西,另一方面onItemClick列表视图的点击处理程序似乎不能获得触摸的x/y。我知道为此我可以使用OnTouchEvent,但后来我无法知道被点击的项目等...重定向OnItem点击一个ListView到真正的触摸项目视图

+0

问题有点令人困惑..你想执行onItemClick当有人点击任何按钮?或相反亦然? – 2012-08-07 16:48:17

+0

对不起。我主要希望当用户点击属于列表视图项目(已经通过自定义列表数据适配器设置)的视图(例如按钮)时,接收点击的是列表而不是按钮,并且在此之后通过performClick()或其他方式通知按钮它在我的自定义列表视图项onclick处理程序中被单击。我希望现在更清楚。 – Notbad 2012-08-07 16:55:31

+0

所以你想调用两个控件的onClick事件?对? – 2012-08-07 17:01:52

回答

3

好吧试试这个,可能会帮助你...设置一个常见的onClick按钮以及作为ListItem。

@override 
public void onClick(View v) { 
    Sting position=v.getTag().toString();    //<--- like this 
    //task to do when clicks on the view... 
    switch (v.getId()) { 
    case R.id.<id_of_the_button1>: 
      //task to do when clicks on the button 1   
    break; 
    case R.id.<id_of_the_button2>: 
      //task to do when clicks on the button 2   
    break; 
} 

在自定义适配器中实现了OnClickListener,并通过上面的onClick实现了它。

+0

嗯,这可能工作,问题是,我需要知道列表中的位置id(列表项)是否被点击以获取某些数据,等等......这就是为什么我使用List OnItemClick 。按照你的方法,我对列表中的项目位置一无所知。在我的情况下,我需要这个,因为每个项目列表是菜单中的不同选项。 – Notbad 2012-08-07 17:17:13

+0

创建列表时将位置设置为标签。使用setTag()方法。您可以为列表项视图设置标签。我编辑了答案。 – 2012-08-07 17:24:15

相关问题