选择ListView的行而不是项目
问题描述:
我已经使用默认的ArrayAdapter创建了一个列表视图。但是,要从列表中选择一个项目,我必须点击该项目而不仅仅是该行。我怎样才能改变它,只需点击项目所在的行而不是项目本身?选择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"
/>
答
更改该行的子视图包括android:focusable="false"
。这将允许您单击整行。现在,由于每个个人观点认为它可以获得关注,所以它们发生在该行的“顶部”。
P.S.我们真正需要的是ListView的ROW的XML。不是ListView本身。 :)
希望这有助于
FuzzicalLogic
我加入了row.xml你的意思是添加在TextView的? – JustCurious 2012-01-10 21:40:30
是的,先生。这通常是解决这个确切问题的方法。我会经常添加'android:clickable =“false”'来达到很好的效果,但是在大多数情况下,这是不必要的。 – 2012-01-10 23:11:23
如果你的行包含多个视图,你可以在每个视图中包含它。 :) – 2012-01-10 23:13:40