选择ListView的行而不是项目

时间:2012-01-10 17:00:44

标签: android listview

我使用默认的ArrayAdapter创建了一个listview。但是,要从列表中选择一个项目,我必须点击该项目,而不仅仅是行。如何更改它才能只单击项目所在的行而不是项目本身?

以下是我的listview的代码:

    ListView mListView = (ListView) findViewById(android.R.id.list);
    mListView.setAdapter(new ArrayAdapter<String>(this, R.layout.row, ans));
    mListView.setOnItemClickListener(new OnItemClickListener(){
        @Override
        public void onItemClick(AdapterView<?> arg0, View v, int i,
                long l) {
            Log.d(LOG_TAG,"Selected option"+i);
            startActivity(intent);
            finish();
        }

    });

这是listview的xml:

<ListView
        android:id="@+id/list"
        android:layout_width="wrap_content"
        android:layout_height="250dp"
        android:layout_marginLeft="50dp"
        android:layout_marginRight="50dp"
        android:divider="@drawable/list_divider"
        android:dividerHeight="1dp" />

这是row.xml:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
style="@style/list_answers"
/>

1 个答案:

答案 0 :(得分:2)

更改行的子视图以包含android:focusable="false"。这将允许您单击整行。现在,由于每个单独的视图都认为它可以获得焦点,因此它们会在行的“顶部”发生。

P.S。我们真正需要的是ListView的ROW的XML。不是ListView本身。 :)

希望这有帮助,

FuzzicalLogic