我制作了一个 ListView 。 使用this教程链接 它工作正常。 但问题是当我尝试在其 Activity 类中添加 onitemclick 监听器时,点击操作不起作用。我只想显示一条消息。这里是 onItemClickListener 的代码
listViewCity.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
String item = ((TextView)v).getText().toString();
Toast.makeText(getApplicationContext(), item, Toast.LENGTH_LONG).show();
}
});
为什么它不起作用有人能告诉我吗???
最佳答案
如果您遇到异常或强制关闭,您应该已经提及。
首先,您的 OnItemClickListener 是错误的,因为传递给您的 OnClickListener 的 View 不是 TextView,因此您不能将它强制转换为 TextView。
您可以使用以下方法修复它:
listViewCity.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
String item = ((TextView)v.findViewById(R.id.cityName)).getText().toString();
Toast.makeText(getApplicationContext(), item, Toast.LENGTH_LONG).show();
}
});
试试我刚才做的,它应该可以工作。如果它不起作用,您可能需要从 xml 文件中删除行 android:autoLink="web"
。
android:autoLink="web"
属性使您的 View 的 TextView 可点击。正如我在评论中提到的,如果您的任何 subview 是可点击的,您的 OnItemClickListener 将不会收到事件,因为它将被 children 使用。
关于android - ListView 的 OnItemClick 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12401748/