CheckBox

এই পর্বে আমরা দেখবো, কোন কিছুর জন্য ইউজারকে আমরা ৩-৪টি বা তারও বেশী অপশন দিব এবং ইউজার তার ভিতর যত ইচ্ছা তত অপশন পছন্দ করতে পারবে, সেটি কিভাবে করতে পারি -

 প্রথমেই লেআউট ডিজাইন করা যাক -



প্রথমে উপরে একটি হেডলাইন দিলাম ইউজারকে বুঝানোর জন্য , কি করতে হবে ! এরপর কয়েকটি অপশন দিয়ে দিলাম । এরপরে একটি বাটন । ইউজার যে অপশন গুলো চুজ করে বাটনে ক্লিক করবে সেগুলো নিচের TextView তে দেখাবে ।

লেআউট এর ভিতরের ট্যাগগুলো নিয়ে নতুন করে বলার কিছু নাই , সবগুলোই আমরা আগে শিখে আসছি । এখানে দেখুন CheckBox এর প্রতিটি ভিউ এর onClick এর ভিতর একই নাম দিয়েছি কেননা ইউজার যে ভিউতেই  ক্লিক করুক নাহ কেন সবগুলো একই ম্যাথডের ভিতরের মধ্য দিয়ে একই কাজগুলো করবে ।

এখন MainActivity.java তে কোড করা যাক -

public class MainActivity extends AppCompatActivity{

   ArrayList<String> item = new ArrayList<String>();  
   TextView result;  

অ্যারে লিস্ট এর তৈরি করলাম , কেননা ইউজার যেসব অপশন চুজ করবে সেগুলো এই লিস্টের ভিতরে এসে জমা করবো , পরিবর্তীতে এই লিস্ট-ই আমরা দেখাবো । এরপরে রেজাল্ট দেখানোর জন্য TextView এর ইন্সট্যান্স তৈরি করলাম । বাটনের কোন ইন্সট্যান্স তৈরি করলাম নাহ কারন onCreate ম্যাথডের দ্বারাই আমরা আমাদের প্রয়োজনীয় কাজ করবো ।

   @Override  
   protected void onCreate(Bundle savedInstanceState) {  
     super.onCreate(savedInstanceState);  
     setContentView(R.layout.activity_main);  
     result = findViewById(R.id.result);  
   }  

এখানে শুধু লেআউট এর রেজাল্ট আইডির সাথে যোগ করে দিলাম

এবার ইউজার অপশনগুলো যে চুজ করবে তার কোড করা যাক -

   public void country(View view) {  
     boolean check = ((CheckBox) view).isChecked();  
     switch (view.getId()){  
       case R.id.bangladesh:  
         if(check){  
           item.add("Bangladesh");  
         }else {  
           item.remove("Bangladesh");  
         }  
         break;  
       case R.id.canada:  
         if(check){  
           item.add("Canada");  
         }else {  
           item.remove("Canada");  
         }  
         break;  
       case R.id.uk:  
         if(check){  
           item.add("UK");  
         }else {  
           item.remove("UK");  
         }  
         break;  
     }  
   }  

এখানে প্রথমে boolean ভ্যারিয়েবল দ্বারা চেক করবো ভিউ চেক করা আছে কিনা । যদি ইউজার চেক করে তাহলে boolean ভ্যালু true আসবে ,আর চেক নাহ থাকলে ভ্যালু false আসবে ।

তাহলে যেটা দাঁড়ালো, ইউজার যে কোন চেকবক্সেই ক্লিক করলেই switch এর ভিতরে এসে চেক করবে কোন ভিউটা ইউজার চেক করেছে , যেটা চেক করলো সেই case এর ভিতরে ঢুকলো । এরপর সেটা এখনো check আছে কিনা সেটা নির্ধারণ করলো ওই boolean ভ্যারিয়েবল দ্বারা , যদি ইউজার আবার আনচেক করে দেয় তাহলে আবার সেটি রিমুভ করে দিবে । এভাবে সকল চেক অপশন গুলো সে ArrayList এ জমা করবে ।

এবার ইউজার বাটনে ক্লিক করলে নিচের TextView তে যে রেজাল্ট দেখাবে তার কোড করা যাক -

   public void showresult(View view) {  
     String allItem = "";  
     for(String items:item){  
       allItem = allItem+items+"\n";  
     }  
     result.setText(allItem);  
   }  

এখানে প্রথমে ফাকা String ভ্যারিয়েবল ডিক্লার করলাম । এই String  এর ভিতর ArrayList এর রেজাল্টগুলো জমা করে , String ভ্যারিয়েবল টাই TextView তে সেট করে দিব । ফরইচ লুপের মাধ্যমে String ভ্যারিয়েবল এর ভিতর সব রেজাল্টগুলো জমা করলাম । এরপর সেটি TextView তে দিয়ে দিলাম ।

তাহলে আমাদের ফুল কোড যা লেখা হল -



মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

Spinner View - 11 ( Android Bangla Tutorial)

ImageView ( Android Bangla Tutorial - )

Toggle Button - 10 ( Android Bangla Tutorial)