صفحات

dimanche 3 novembre 2013

صندوق الإختيار-CheckBox


بسم الله الرحمان الرحيم:
مرحبا أحبابي،درسنا اليوم سيأخذنا إلى مكون من المكونات التي نستعملها كثيرا في تطبيقاتنا و هو صندوق الإختيار كما في الصورة.
كما هو مفهوم من اسم المكون صندوق الإختيار CheckBox،فهذا المكون يستخدم عندما نريد من المستعمل أن يختار مثلا عنصرا ما أو لا يختاره.
عندما يختار المستعمل صندوق الإختيار،هذا الأخير يستدعي الحدث onClick و هنا يمكننا أن نقوم بالإجراءات اللازمة التي نريدها.
سنقوم بإنشاء تطبيق يقوم فيه المستعمل باختيار نوع الأطعمة التي يفضلها Content
 أولا دعونا نمر إلى التصميم و ملف ال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"
    android:orientation="vertical" >
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Which foods do you prefer?"/>

    <CheckBox
        android:id="@+id/checkbox_meat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="meat" />

    <CheckBox
        android:id="@+id/checkbox_vegetables"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="vegetables" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="OK" />

</LinearLayout>
تصميمنا يضم صندوقي اختيار،كل واحد منهما معرف بمعرِّف id وحيد،ويحمل نصاً يظهر بجانب الصندوق.أضفنا كذلك زرا .
عند اختيار المستعمل لما يريد أن يختاره،يقوم بلمس الزر و هنا سنتمكن من تحديد اختياراته و ضعها مثلا في قاعدة بيانات أو .....
في مثالنا نحن،سنقوم فقط بإظهار نافذة تكون فيها اختياراته،و هذا هو كود الكلاس الرئيسية (Activity):
package com.example.example;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.Toast;

public class MainActivity extends Activity {
 //
 CheckBox checkboxMeat;
 CheckBox checkboxVegetables;
 Button buttonOk;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  //
  checkboxMeat = (CheckBox) findViewById(R.id.checkbox_meat);
  checkboxVegetables = (CheckBox) findViewById(R.id.checkbox_vegetables);
  buttonOk = (Button) findViewById(R.id.button);
  buttonOk.setOnClickListener(new View.OnClickListener() {
   
   @Override
   public void onClick(View v) {
    boolean meat = checkboxMeat.isChecked();
    boolean vegetables = checkboxVegetables.isChecked();
    if(meat && vegetables)
     Toast.makeText(getApplicationContext(), "meat and vegetables", Toast.LENGTH_SHORT).show();
    else if(meat && !vegetables)
     Toast.makeText(getApplicationContext(), "only meat", Toast.LENGTH_SHORT).show();
    else if(!meat && vegetables)
     Toast.makeText(getApplicationContext(), "only vegetables", Toast.LENGTH_SHORT).show();
    else
     Toast.makeText(getApplicationContext(), "no meat and no vegetables", Toast.LENGTH_SHORT).show();
    
   }
  });
  
 }

}
أول ما نقوم به دائما هو التصريح بالمكونات التي نحتاجها و الموجودة في التصميم ، وهي صندوقا الإختيار ثم الزر،وبعد ذلك نعرف كل واحد منها عبر المعرِّف id .
عند لمس الزر لابد من الإستجابة للحدث عبر تحديد ما نريده،لكن كيف نعرف ما الذي تم اختياره؟
هناك دالة تجيب عن هذا السؤال،وهي isChecked ، وتأخذ قيمتين إما true أو false ،لذلك قمنا بالتصريح بمتغيرين meat و vegetables من نوع boolean ،كل واحد يأخذ قيمة صحيح أو خطأ (هل تم اختيار الصندوق أو لا )وحسب هذه القيم نظهر النافذة مع المعطيات التي نريد،الكود بسيط،أليس كذلك؟Complice وهذه هي النتيجة.
هكذا نكون قد وصلنا إلى نهاية الدرس،دمتم في رعاية الله.

0 commentaires:

Enregistrer un commentaire