شرح التعامل مع CheckBox لاستخدامها داخل التطبيق في لغة kotlin
ال checkBox تسمح للمستخدم بأختيار اكثر من خيار واحد على عكس radioButton الذي نستعملها لتحديد خيار واحد فقط
لنفترض تريد اضافة لمعرفة الغات الذي يتحدثها مستخدم التطبيق هنا ممكن يكون يتحدث اكثر من لغة باستخدام checkbox تسمح للمستخدم باختيار الغات الذي يتحدثها ان كانت لغة واحدة او اكثر
اول شيئ نحتاجه اضافة الـ checkBox الى الواجهة لدينا
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.kotdroid.testkotlin.MainActivity"> <CheckBox android:id="@+id/check_box_english" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="English"/> <CheckBox android:id="@+id/check_box_arabic" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Arabic"/> <CheckBox android:id="@+id/check_box_french" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="French"/> <CheckBox android:id="@+id/check_box_korean" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Korean"/> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="Click"/> </LinearLayout> |
وتم اضافة button ايضاً لجلب القيم الذي تم تحديدها من المستخدم
سوف يتم التعامل معهم من الـ ID الخاص بهم
1 2 |
if (check_box_english.isChecked) result += check_box_english.text |
سوف نستخدم دالة isChecked لمعرفة العناصر الذي تم اختيارهم
1 2 3 4 5 6 7 8 9 |
var result: String = "" if (check_box_english.isChecked) result += check_box_english.text if (check_box_arabic.isChecked) result += " ," + check_box_arabic.text if (check_box_french.isChecked) result += " ," + check_box_french.text if (check_box_korean.isChecked) result += " ," + check_box_korean.text |
متغير result لاضافة اسماء الغات الذي تم اختيارهم وهن استخدمنا text لجلب النص الخاص به
ولا ننسا اذا لم يتم اختيار شيئ ممكن بعض البرامج تكمل عملها بشكل طبيعي ولكن البعض نكون بحاجة جعل المستخدم يختار قيمة
1 2 3 4 |
if (result.isEmpty()) showToast("Empty") else showToast(result) |
هنى قمنا بفحص متغير result اذا كان فارغ المستخدم لم يتم اختيار شيئ
الكود كاملاً
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) btn.setOnClickListener(View.OnClickListener { var result: String = "" if (check_box_english.isChecked) result += check_box_english.text if (check_box_arabic.isChecked) result += " ," + check_box_arabic.text if (check_box_french.isChecked) result += " ," + check_box_french.text if (check_box_korean.isChecked) result += " ," + check_box_korean.text if (result.isEmpty()) showToast("Empty") else showToast(result) }) } fun showToast(message: String) { Toast.makeText(applicationContext, message, Toast.LENGTH_LONG).show() } } |