RadioButton
এই পর্বে আমরা রেডিওবাটনের কাজ শিখবো । চেকবক্স এ ইউজার যত ইচ্ছা তত অপশন চেক করতে পারতো কিন্তু রেডিওবাটনে ইউজার শুধুমাত্র একটি অপশন চুজ করতে পারবে ।
তো চলুন লেআউটের কাজ করা শুরু করে ফেলি -
একদম উপরে ইউজারকে একটি ম্যাসেজ দিয়ে দিলাম, যে ম্যাসেজটি strings.xml এ রাখা আছে ।
এখন আমরা RadioButton বাটনের ভিউগুলো এড করবো । RadioButton গুলো থেকে যেহেতু ইউজার একটি মাত্র অপশন চুজ করতে পারবে তাই এই ভিউগুলোকে একটি গ্রুপ এর ভিতরে রাখতে হবে । চেকবক্সে ইউজার যত ইচ্ছা তত চুজ করতে পারতো তাই সেই ভিউগুলোকে কোন গ্রুপের ভিতর নাহ রেখেও আমরা কাজ করতে পেরেছি কিন্তু RadioButton গ্রুপ এ নাহ রেখে আলাদা রাখলে এটা RadioButton হিসেবে কাজ করবে নাহ । তাই RadioButton যে গ্রুপ এর ভিতর রাখতে হবে তার নাম হল RadioGroup
সকল RadioButton ভিউকে একই onClick ম্যাথড এ নিলাম কারন ইউজার যে অপশন টাই চুজ করুক নাহ কেন আমরা একই কাজ করবো । যদি ভিন্ন ভিন্ন কাজ করতাম যেমন বাংলাদেশ চুজ করলে বাংলাদেশের পতাকা আসবে + বাংলাদেশের ইতিহাস দেখাবে , আবার কানাডা চুজ করলে কানাডার প্রধানমন্ত্রীর ছবি দেখাবে আবার ইউকে তে ক্লিক করলে সে দেশের সংস্কৃতি দেখাবে তাহলে ভিন্ন ভিন্ন ম্যাথড তৈরি করে ভিন্ন ভিন্ন কাজ করতাম ।
এবার আর কোন বাটন নিচ্ছি নাহ কারন ইউজার যে অপশন চুজ করবে সেই অপশন টাই রেজাল্ট এ দেখিয়ে দিব , তাই TextView নিব -
অবশেষে আমাদের লেআউট ডিজাইন যে রকম দাঁড়ালো -
এবার তবে ব্যাকগ্রাউন্ডের কাজ কাজ করা যাক -
নিশ্চয়ই বুঝতে পারছেন এখানে কি করা হইছে , যারা বুঝতে পারেন নাই তারা দয়া করে পুরানো টিউটোরিয়াল গুলো পড়ে আসবেন 😊
এবার অপশন চুজ করার ম্যাথড লিখতে হবে । আপনাদের নিশ্চয়ই মনে আছে onClick এ আমরা কোন ম্যাথডের নাম দিয়েছিলাম -
এখানে আপনি চাইলে গত চেকবক্সের টিউটোরিয়াল এর মত if-else ইউজ করতে পারেন কিন্তু যেহেতু অপশন চুজ করার সাথে সাথেই সেটা রেজাল্ট এ দেখিয়ে দিচ্ছি , আনচেক করার কোন সিস্টেম রাখা হয় নাই , তাই if-else ইউজ করলাম নাহ । কোন প্রোজেক্ট করার সময় অবশ্যই if-else ইউজ করবেন 😊
যারা চেকবক্সের টিউটোরিয়াল দেখে আসছেন তারা নিশ্চয়ই বুঝতে পারছেন এখানে কি করা হইছে , আপনি নাহ বুঝতে পারলে দয়া করে গত পর্বের টিউটোরিয়াল ( চেকবক্সের ) টি আরেকবার ভালোভাবে বুঝে আসবেন 😊
তো চলুন লেআউটের কাজ করা শুরু করে ফেলি -
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/headline"
android:textSize="28sp"
android:textStyle="bold"/>
একদম উপরে ইউজারকে একটি ম্যাসেজ দিয়ে দিলাম, যে ম্যাসেজটি strings.xml এ রাখা আছে ।
এখন আমরা RadioButton বাটনের ভিউগুলো এড করবো । RadioButton গুলো থেকে যেহেতু ইউজার একটি মাত্র অপশন চুজ করতে পারবে তাই এই ভিউগুলোকে একটি গ্রুপ এর ভিতরে রাখতে হবে । চেকবক্সে ইউজার যত ইচ্ছা তত চুজ করতে পারতো তাই সেই ভিউগুলোকে কোন গ্রুপের ভিতর নাহ রেখেও আমরা কাজ করতে পেরেছি কিন্তু RadioButton গ্রুপ এ নাহ রেখে আলাদা রাখলে এটা RadioButton হিসেবে কাজ করবে নাহ । তাই RadioButton যে গ্রুপ এর ভিতর রাখতে হবে তার নাম হল RadioGroup
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/bangladesh"
android:text="Bangladesh"
android:textSize="25sp"
android:onClick="itemselection"/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/canada"
android:text="Canada"
android:textSize="25sp"
android:onClick="itemselection"/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/uk"
android:text="UK"
android:textSize="25sp"
android:onClick="itemselection"/>
</RadioGroup>
সকল RadioButton ভিউকে একই onClick ম্যাথড এ নিলাম কারন ইউজার যে অপশন টাই চুজ করুক নাহ কেন আমরা একই কাজ করবো । যদি ভিন্ন ভিন্ন কাজ করতাম যেমন বাংলাদেশ চুজ করলে বাংলাদেশের পতাকা আসবে + বাংলাদেশের ইতিহাস দেখাবে , আবার কানাডা চুজ করলে কানাডার প্রধানমন্ত্রীর ছবি দেখাবে আবার ইউকে তে ক্লিক করলে সে দেশের সংস্কৃতি দেখাবে তাহলে ভিন্ন ভিন্ন ম্যাথড তৈরি করে ভিন্ন ভিন্ন কাজ করতাম ।
এবার আর কোন বাটন নিচ্ছি নাহ কারন ইউজার যে অপশন চুজ করবে সেই অপশন টাই রেজাল্ট এ দেখিয়ে দিব , তাই TextView নিব -
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/result"
android:gravity="center"
/>
অবশেষে আমাদের লেআউট ডিজাইন যে রকম দাঁড়ালো -
এবার তবে ব্যাকগ্রাউন্ডের কাজ কাজ করা যাক -
public class MainActivity extends AppCompatActivity {
TextView result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
result = findViewById(R.id.result);
}
নিশ্চয়ই বুঝতে পারছেন এখানে কি করা হইছে , যারা বুঝতে পারেন নাই তারা দয়া করে পুরানো টিউটোরিয়াল গুলো পড়ে আসবেন 😊
এবার অপশন চুজ করার ম্যাথড লিখতে হবে । আপনাদের নিশ্চয়ই মনে আছে onClick এ আমরা কোন ম্যাথডের নাম দিয়েছিলাম -
public void itemselection(View view) {
boolean check = ((RadioButton)view).isChecked();
switch (view.getId()){
case R.id.bangladesh:
result.setText("Bangladesh");
break;
case R.id.canada:
result.setText("Canada");
break;
case R.id.uk:
result.setText("UK");
break;
}
}
এখানে আপনি চাইলে গত চেকবক্সের টিউটোরিয়াল এর মত if-else ইউজ করতে পারেন কিন্তু যেহেতু অপশন চুজ করার সাথে সাথেই সেটা রেজাল্ট এ দেখিয়ে দিচ্ছি , আনচেক করার কোন সিস্টেম রাখা হয় নাই , তাই if-else ইউজ করলাম নাহ । কোন প্রোজেক্ট করার সময় অবশ্যই if-else ইউজ করবেন 😊
যারা চেকবক্সের টিউটোরিয়াল দেখে আসছেন তারা নিশ্চয়ই বুঝতে পারছেন এখানে কি করা হইছে , আপনি নাহ বুঝতে পারলে দয়া করে গত পর্বের টিউটোরিয়াল ( চেকবক্সের ) টি আরেকবার ভালোভাবে বুঝে আসবেন 😊
মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন