2012-12-12 40 views

回答

1

如果你想在一个列表行点击不同的物品,最好在一行中定义的看法不同onClickListener,否则它应该更好地使用onItemClickListener

+0

是的,这就是它,但我必须在适配器的getView中做到这一点吗? – user1437481

+0

我用来将侦听器传递给适配器,并在每个行的getView中设置侦听器的视图 –

+0

将侦听器传递给适配器?对不起,我误解了该部分 – user1437481

1

您应该overrideOnListItemClick

protected void onListItemClick(ListView l, View v, int position, long id) { 
} 

position参数在您的Adapter中持有Object的位置。所以你可以使用它来检索它并进行计算。

+0

。但是,例如,iam试图处理listrow(其中有几个其他小部件)中的imageview点击。位置返回listview的位置,而不是我可以用作imageview的参考 – user1437481

+0

是的你是对的。如果您需要更细化的控制,则应在每个需要管理触摸的视图上添加一个onClickLister。为了做到这一点,你应该有自己的适配器 – Blackbelt

1

对于ListView对象,您可以使用onItemClickListener,但请注意,如果您的列表项中有可聚焦的对象(edittext,button ..),那么由于这些对象,此侦听器将不会再被通知。如果您想将侦听器的引用传递给适配器,则应将其作为弱引用传递给它。