多项选择列表,自定义视图? [英] Multiple choice list with custom view?
问题描述
我见过的例子 com.example.android.apis.view.List11 从ApiDemos。在这个例子中,各行采取的观点 android.R.simple_list_item_multiple_choice 。每一个这样的观点有一个的TextView
和复选框
。
I've seen example com.example.android.apis.view.List11 from ApiDemos. In that example, each row takes the view android.R.simple_list_item_multiple_choice. Each such view has a TextView
and a CheckBox
.
现在我希望每个视图有2 的TextView
和1 复选框
,有点类似于项目list3 的例子。我试图创建一个自定义布局文件row.xml是这样的:
Now I want each view to have 2 TextView
s and 1 CheckBox
, somewhat similar to the List3 example. I tried creating a custom layout file row.xml like this:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<CheckBox
android:id="@+id/checkbox"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="fill_parent" />
<TextView
android:id="@+id/text_name"
android:textSize="13px"
android:textStyle="bold"
android:layout_toLeftOf="@id/checkbox"
android:layout_alignParentLeft="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/text_phone"
android:textSize="9px"
android:layout_toLeftOf="@id/checkbox"
android:layout_below="@id/text_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
然后在活动
的的onCreate()
,我不喜欢这样的:
Then in Activity
's onCreate()
, I do like this:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Query the contacts
mCursor = getContentResolver().query(Phones.CONTENT_URI, null, null, null, null);
startManagingCursor(mCursor);
ListAdapter adapter = new SimpleCursorAdapter(this,
R.layout.row,
mCursor,
new String[] { Phones.NAME, Phones.NUMBER},
new int[] { R.id.text_name, R.id.text_phone });
setListAdapter(adapter);
getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
}
结果那种看起来像我想要什么,但它看起来像列表不知道它的项目被选中。另外,我需要点击正好在复选框
。在List11例子中,我只需要点击该项目行。
The result kind of looks like what I want, but it looks like the list doesn't know which item of it is selected. Also, I need to click exactly on the CheckBox
. In the List11 example, I only need to click on the item row.
那么,我需要做的,使一个多选列表的每一行我的自定义视图?非常感谢。
So what do I need to do to make a multiple choice list with my custom view for each row? Many thanks.
推荐答案
您必须使自己的 RelativeLayout的
实现可检查
接口,并有一个参照复选框
或将 CheckedTextView
(或列表,如果是选择题模式)。
You have to make your own RelativeLayout
that implements the Checkable
interface and have a reference to the CheckBox
or to the CheckedTextView
(or a list if it's multiple choice mode).
看看这个帖子: http://www.marvinlabs.com/2010/ 10月29日/自定义列表视图,能够检查项/
这篇关于多项选择列表,自定义视图?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!