【发布时间】:2011-04-02 13:43:25
【问题描述】:
我在行视图中有一个带有可点击按钮的列表视图,以及一个自定义的 SimpleCursorAdapter 来实现这个列表。尽管单击该行时未触发 onitemclicklistener(请参阅here),但我已经实现了一个在触摸行项目时起作用的侦听器:
public View getView(int position, View convertView, ViewGroup parent) {
.................................
convertView.setOnClickListener(new OnItemClickListener(position));
}
public class OnItemClickListener implements OnClickListener{
private int mPosition;
OnItemClickListener(int position){
mPosition = position;
}
public void onClick(View view) {
}
}
这样做有两个问题 - 触发 onitemclick 侦听器需要两次触摸,大概一次聚焦,一次触发,并且无法使用轨迹球选择行。
我尝试了 SO 上列出的一些解决方法,包括使按钮无法聚焦,以及其他一些方法 here,但没有得到任何结果。正如该链接所指出的,谷歌通过通话记录应用程序自行完成。不过,这似乎可以通过 ListActivities 实现 - 我正在使用一个选项卡活动,在同一个选项卡中包含多个列表。
【问题讨论】:
-
作为一个快速更新 - 我已经设法通过使用适当的 OnItemClickListener 来停止两次点击的需要,将行布局中的所有项目设置为不可聚焦和不可点击,并使用按钮的 TouchDelegate。但是,我仍然无法选择带有轨迹球的行,如果正在使用 OnItemClickListener,我应该能够做到这一点,对吧?