چکباکسها به کاربر اجازه میدهند یک یا چند گزینه را از یک مجموعه انتخاب کند. معمولاً گزینههای چکباکس را در یک لیست عمودی نمایش میدهید.
برای ایجاد هر گزینهی چکباکس، یک CheckBox در طرحبندی خود ایجاد کنید. از آنجا که مجموعهای از گزینههای چکباکس به کاربر اجازه میدهد چندین مورد را انتخاب کند، هر چکباکس به طور جداگانه مدیریت میشود و شما باید برای هر کدام یک شنوندهی کلیک ثبت کنید.
پاسخ به رویدادهای کلیک
با ایجاد یک طرحبندی با اشیاء CheckBox در یک لیست شروع کنید:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <CheckBox android:id="@+id/checkbox_meat" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Meat" /> <CheckBox android:id="@+id/checkbox_cheese" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Cheese"/> </LinearLayout>
پس از آماده شدن طرحبندی، به Activity یا Fragment خود بروید، نماهای CheckBox خود را پیدا کنید و یک شنونده تغییر (change listener) تنظیم کنید، مانند مثال زیر:
کاتلین
findViewById<CheckBox>(R.id.checkbox_meat) .setOnCheckedChangeListener { buttonView, isChecked -> Log.d("CHECKBOXES", "Meat is checked: $isChecked") } findViewById<CheckBox>(R.id.checkbox_cheese) .setOnCheckedChangeListener { buttonView, isChecked -> Log.d("CHECKBOXES", "Cheese is checked: $isChecked") }
جاوا
findViewById<CheckBox>(R.id.checkbox_meat) .setOnCheckedChangeListener { buttonView, isChecked -> Log.d("CHECKBOXES", "Meat is checked: $isChecked"); } findViewById<CheckBox>(R.id.checkbox_cheese) .setOnCheckedChangeListener { buttonView, isChecked -> Log.d("CHECKBOXES", "Cheese is checked: $isChecked"); }
کد قبلی هر بار که وضعیت چکباکسها تغییر میکند، یک پیام در Logcat چاپ میکند.
