我正在使用以下代码。
listView = (ListView) findViewById(R.id.SkiiplistListView);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View v, int position,
long arg3) {
// TODO Auto-generated method stub
System.out.println("--position--"+position);
Intent intent = new Intent(SkiipListScreen.this, SkiiperProfileScreen.class);
Bundle bundle = new Bundle();
bundle.putString("uid", uid);
intent.putExtras(bundle);
startActivity(intent);
}
});
我也尝试了下面的内容。
listView = (ListView) findViewById(R.id.SkiiplistListView);
listView.setOnItemClickListener(this);
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
// TODO Auto-generated method stub
System.out.println("--position--"+position);
Intent intent = new Intent(this, SkiiperProfileScreen.class);
Bundle bundle = new Bundle();
bundle.putString("uid", uid);
intent.putExtras(bundle);
startActivity(intent);
}
我在很多课程中都使用过这种代码。 但在某些类中,此代码会响应,而在某些类中则不会。在许多情况下,经过一段时间后,它会在一段时间后开始响应。
我不知道为什么会这么不协调。如果您有任何答案,请告诉我。
答案 0 :(得分:3)
你所说的似乎是不可能的。
listView.setOnItemClickListener(new OnItemClickListener()...
始终有效。
检查您在适配器中使用的单个单元格布局XML,以获取列表视图,并确保您填写的元素不可单击。它会阻止点击listitem。检查XML代码。我认为这应该可以解决问题
答案 1 :(得分:1)
您没有显示布局XML,但是在listview中是否有其他可聚焦对象?例如,复选框或编辑文本?你会发现这些对象会窃取listitem中的触摸事件。在视觉上,看起来列表项已经响应,但触摸事件被发送到复选框。
如果是这种情况,处理起来很简单 - 只需为复选框调用setFocusable (false)
(或编辑文本等)。
当然,这意味着您需要自己处理该对象的触摸事件。