0
關於在滾動ListView時被檢查的不需要的複選框的已知問題,您好,誰能給我一個想法如何正確使用checkedTextView,以便我可以在滾動時正確保持檢查狀態列表。我認爲listview會在使用checkedtextView時保持複選框狀態,但似乎並非如此。或者我必須使用checkedTextView的默認ID。我似乎無法找到這種情況下使用cursorAdapter或SimpleCursorAdapter的示例。謝謝ListView中的複選框狀態問題
我已經嘗試過使用這個,但我真的不知道如何處理設置的標籤位置。這裏是一小塊代碼:
//bindView() method in SimpleCursorAdapter
//viewHolder holder;
//Cursor c;
holder.checkedText = (CheckedTextView)view.findViewById(R.id.view_checked);
holder.checkedText.setTag(c.getPosition());
holder.checkedText.setOnClickListener(new View.OnClickListener() {
public void onClick(View v)
{
v.getTag();
((CheckedTextView) v).toggle();
}
});
我的XML標準配置:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:choiceMode="multipleChoice"/>
<TextView android:id="@android:id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/no_notes"/>
</LinearLayout>
我的自定義佈局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:padding="6dp">
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="2dp">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/viewNameText"
android:id="@+id/viewNameId">
</TextView>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:padding="2dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="start Date"
android:layout_gravity="right"
android:id="@+id/DateId">
</TextView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="start Time"
android:layout_gravity="right"
android:id="@+id/TimeId">
</TextView>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
>
<CheckedTextView
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:checked="false"
android:focusable="false"
android:clickable="true"
android:textAppearance="?android:attr/textAppearanceLarge"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
/>
</LinearLayout>
</LinearLayout>
是的,我的列表視圖的屬性choiceMode爲multiple。它雖然沒有默認的ID。如果這有幫助,我在onCreate中使用標準的listview \佈局,然後使用我的自定義佈局來顯示項目。但我checkedTextView是在我的自定義佈局。我應該將其移動到我的標準佈局嗎? – irobotxxx 2010-10-13 18:50:47
我已經在上面添加了我的xml佈局,以顯示我的意思。再次感謝您的時間 – irobotxxx 2010-10-13 18:56:36
@manuelJ:嘗試將您的'CheckedTextView'的'android:id'更改爲'android:id =「@ android:id/text1'。您可以在Java代碼中將此引用爲android。 R.id.text1'。 – CommonsWare 2010-10-13 19:19:51