قائمة مخصصة النقر مع خانات الاختيار
-
23-08-2019 - |
سؤال
لقد ملأت أ ListActivity
من Cursor
استخدام SimpleCursorAdapter
يبدأ نشاط آخر عندما تم النقر فوق أحد العناصر القائمة. أنا أيضا استخدام ViewBinder
للقيام ببعض التحول المخصص للبيانات.
أريد أن أضيف CheckBox
إلى كل صف في القائمة لذلك قمت بتغيير الرأي وأضاف CheckBox
مع الجاذبية الحق.
مضيفا CheckBox
أزال القدرة على النقر فوق العناصر. ال onListItemClick
طريقة كنت تجاوزت في ListActivity
لم يعد يسمى عند الضغط على عنصر قائمة. إزالة CheckBox
إصلاح هذا. لماذا هذا؟
أيضا، كيف يمكنني إعداد القائمة بحيث لا يزال أداء وظائفي المطلوبة إذا تم النقر فوق الجزء الرئيسي من عنصر القائمة ولكن لديك وظائف إضافية عند CheckBox
في هذا البند يتم التحقق؟ سوف يضع أ onCheckedChangedListener
العمل أو هو نفس مثيل الرؤية المستخدمة لكل عنصر في القائمة؟
المحلول 2
يشبه SimpleCursorAdapter
هو بدائي جدا لما أردت تحقيقه. لقد تحولت إلى التنفيذ CursorAdapter
وإعادة عرض جديد باستخدام LayoutInflater
في تنفيذي لل newView
طريقة.
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return LayoutInflater.from(context).inflate(R.layout.alarm_row, parent, false);
}
في BindView، ثم اضبط مخصص OnClickListener
لبلدي الرئيسية LinearLayout
ثم آخر OnCheckedChangeListener
إلى CheckBox
.
لكل هذا للنظر إلى اليمين اضطررت إلى ضبط LinearLayout
خلفية لنظام Android's Menuitem
android:background="@android:drawable/menuitem_background"
نصائح أخرى
كما هو موضح هنا, ، يعمل المستمع انقر فقط إذا لم يكن هناك عرض آخر focusable
. وبعد تحديد الخاص بك CheckBox
ل focusable="false"
يجب أن تفعل الخدعة:
<CheckBox android:focusable="false" />