CheckBox
এই পর্বে আমরা দেখবো, কোন কিছুর জন্য ইউজারকে আমরা ৩-৪টি বা তারও বেশী অপশন দিব এবং ইউজার তার ভিতর যত ইচ্ছা তত অপশন পছন্দ করতে পারবে, সেটি কিভাবে করতে পারি -
প্রথমেই লেআউট ডিজাইন করা যাক -
প্রথমে উপরে একটি হেডলাইন দিলাম ইউজারকে বুঝানোর জন্য , কি করতে হবে ! এরপর কয়েকটি অপশন দিয়ে দিলাম । এরপরে একটি বাটন । ইউজার যে অপশন গুলো চুজ করে বাটনে ক্লিক করবে সেগুলো নিচের TextView তে দেখাবে ।
লেআউট এর ভিতরের ট্যাগগুলো নিয়ে নতুন করে বলার কিছু নাই , সবগুলোই আমরা আগে শিখে আসছি । এখানে দেখুন CheckBox এর প্রতিটি ভিউ এর onClick এর ভিতর একই নাম দিয়েছি কেননা ইউজার যে ভিউতেই ক্লিক করুক নাহ কেন সবগুলো একই ম্যাথডের ভিতরের মধ্য দিয়ে একই কাজগুলো করবে ।
এখন MainActivity.java তে কোড করা যাক -
public class MainActivity extends AppCompatActivity{
অ্যারে লিস্ট এর তৈরি করলাম , কেননা ইউজার যেসব অপশন চুজ করবে সেগুলো এই লিস্টের ভিতরে এসে জমা করবো , পরিবর্তীতে এই লিস্ট-ই আমরা দেখাবো । এরপরে রেজাল্ট দেখানোর জন্য TextView এর ইন্সট্যান্স তৈরি করলাম । বাটনের কোন ইন্সট্যান্স তৈরি করলাম নাহ কারন onCreate ম্যাথডের দ্বারাই আমরা আমাদের প্রয়োজনীয় কাজ করবো ।
এখানে শুধু লেআউট এর রেজাল্ট আইডির সাথে যোগ করে দিলাম
এবার ইউজার অপশনগুলো যে চুজ করবে তার কোড করা যাক -
এখানে প্রথমে boolean ভ্যারিয়েবল দ্বারা চেক করবো ভিউ চেক করা আছে কিনা । যদি ইউজার চেক করে তাহলে boolean ভ্যালু true আসবে ,আর চেক নাহ থাকলে ভ্যালু false আসবে ।
তাহলে যেটা দাঁড়ালো, ইউজার যে কোন চেকবক্সেই ক্লিক করলেই switch এর ভিতরে এসে চেক করবে কোন ভিউটা ইউজার চেক করেছে , যেটা চেক করলো সেই case এর ভিতরে ঢুকলো । এরপর সেটা এখনো check আছে কিনা সেটা নির্ধারণ করলো ওই boolean ভ্যারিয়েবল দ্বারা , যদি ইউজার আবার আনচেক করে দেয় তাহলে আবার সেটি রিমুভ করে দিবে । এভাবে সকল চেক অপশন গুলো সে ArrayList এ জমা করবে ।
এবার ইউজার বাটনে ক্লিক করলে নিচের TextView তে যে রেজাল্ট দেখাবে তার কোড করা যাক -
এখানে প্রথমে ফাকা String ভ্যারিয়েবল ডিক্লার করলাম । এই String এর ভিতর ArrayList এর রেজাল্টগুলো জমা করে , String ভ্যারিয়েবল টাই TextView তে সেট করে দিব । ফরইচ লুপের মাধ্যমে String ভ্যারিয়েবল এর ভিতর সব রেজাল্টগুলো জমা করলাম । এরপর সেটি TextView তে দিয়ে দিলাম ।
তাহলে আমাদের ফুল কোড যা লেখা হল -
প্রথমেই লেআউট ডিজাইন করা যাক -
প্রথমে উপরে একটি হেডলাইন দিলাম ইউজারকে বুঝানোর জন্য , কি করতে হবে ! এরপর কয়েকটি অপশন দিয়ে দিলাম । এরপরে একটি বাটন । ইউজার যে অপশন গুলো চুজ করে বাটনে ক্লিক করবে সেগুলো নিচের 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 তে দিয়ে দিলাম ।
তাহলে আমাদের ফুল কোড যা লেখা হল -
মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন