我在设置setOnItemClickListener时遇到问题。以下是我的代码。我已经测试过setAdapter可以工作,并且列表和项目显示在UI上。在设置setOnItemClickListener时,它不起作用。
cool_simpleAdapter = new SimpleAdapter(this, items,
R.layout.mylistitem, new String[] { "title", "link" }, new int[] {
R.id.textView_title, R.id.textView_link });
cool_listView.setAdapter(cool_simpleAdapter);
Log.d("tag_1", "before setOnItemClickListener");
cool_listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Log.d("tag_setonItemClick", "in onItemClick");
Uri uri = Uri.parse("http://www.google.com");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
});
Log.d("tag_2", "after setOnItemClickListener");
我把日志跟踪发生了什么:
Log.d("tag_1","before setOnItemClickListener");
和
Log.d("tag_2","after setOnItemClickListener");
被显示但
Log.d("tag_setonItemClick","in onItemClick");
没有显示。而且我无法单击该项目,也无法打开URL。我不知道该如何解决该问题。
编辑:添加mylistitem.xml布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/textView_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView_link"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
最佳答案
在这种情况下,您的Button处于焦点状态,因此listiten setOnItemClickListener无法正常工作。
将此行添加到Button的xml中
android:focusable="false"
关于android - 为什么我的Android setOnItemClickListener不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20032270/