setOnItemClickListener

setOnItemClickListener

我在设置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/

10-10 16:52