রেডিওগ্রুপে ডিফল্ট হিসাবে চেক করা রেডিও বোতামটি কীভাবে সেট করবেন?


132

আমি নিম্নলিখিত হিসাবে তৈরি RadioGroupএবং RadioButtonগতিশীলভাবে করেছি :

RadioGroup radioGroup = new RadioGroup(context);
                    RadioButton radioBtn1 = new RadioButton(context);
                    RadioButton radioBtn2 = new RadioButton(context);
                    RadioButton radioBtn3 = new RadioButton(context);

                    radioBtn1.setText("Less");
                    radioBtn2.setText("Normal");
                    radioBtn3.setText("More");

                    radioBtn2.setChecked(true);

                    radioGroup.addView(radioBtn1);
                    radioGroup.addView(radioBtn2);
                    radioGroup.addView(radioBtn3);

এখানে পদক্ষেপের radioBtn2.setChecked(true);কারণে radioBtn2সর্বদা পরীক্ষা করা হয়। তার মানে আমি radioBtn2অন্য দুটি রেডিও বোতাম ( radioBtn1, radioBtn3) পরীক্ষা করে চেক করতে পারি না । আমি এটি করতে চাই যা RadioGroupএকবারে কেবল একটি রেডিও বোতাম চেক করতে পারে (এখন এটি একবারে দুটি রেডিওবোটন চেক করতে পারে)।

কিভাবে আমি এই সমস্যার সমাধান করতে পারে?


আপনার কি গতিশীল দরকার ???
ভি কে হুদা

উত্তর:


217

আপনার এইরকম রেডিওগ্রুপে রেডিওবোটনটি পরীক্ষা করা উচিত:

radiogroup.check(IdOfYourButton)

অবশ্যই আপনাকে প্রথমে আপনার রেডিওবটনগুলিতে একটি আইডি সেট করতে হবে

সম্পাদনা: আমি ভুলে গিয়েছিলাম, radioButton.getId()পাশাপাশি কাজ করি , থেও রমেশ

EDIT2:

android:checkedButton="@+id/my_radiobtn"

রেডিওগ্রুপ এক্সএমএল এ কাজ করে


39
অথবা যদি আপনি নিজের আইডি করতে না চান RadioButtonএবং আপনি সূচকটি জানেন তবে আপনি ((রেডিওবটন) রেডিওগ্রুপ.সেটচিল্ডটি (আইএনডিএক্স))
আহমদ কায়ালি

17
আপনার এটি করা উচিত নয়। এটি এই প্রশ্নে বর্ণিত "সেটচেকড" সমস্যা তৈরি করবে। অবশ্যই আপনার বোতামগুলির আইডি ছাড়াই এটি করার উপায় রয়েছে তবে দয়া করে setChecked() একটি উপায় radiogroup.check(((RadioButton)radioGroup.getChildAt(INDEX)).getId())বা
এটির

1
গ্রুপ.সিউকে কল করার আগে রেডিও বোতাম গ্রুপে রেডিও বোতাম যুক্ত করতে ভুলবেন না ভাল (বাটন.জেটআইডি ())
টম

1
আমাকে এটি এইভাবে করতে হয়েছিল: radioGroup.Check(radioGroup.GetChildAt(0).Id);এক্সমারিন.আন্ড্রয়েড ব্যবহারকারীদের জন্য
মারিও

112

XML গুণটি জন্য যদি তার android:checkedButtonযা লাগে idএর RadioButtonপরীক্ষা করতে হবে।

<RadioGroup
...
...
android:checkedButton="@+id/IdOfTheRadioButtonInsideThatTobeChecked"
... >....</RadioGroup>

50

এক্সএমএল ফাইলটিতে আপনার ডিফল্ট আইডি সহ android:checkedButtonক্ষেত্রটি সেট করুন :RadioGroupRadioButton

<RadioGroup
    ....
    android:checkedButton="@+id/button_1">

    <RadioButton
        android:id="@+id/button_1"
        ...../>

    <RadioButton
        android:id="@+id/button_2"
        ...../>

    <RadioButton
        android:id="@+id/button_3"
        ...../>
</RadioGroup>

20
    RadioGroup radioGroup = new RadioGroup(WvActivity.this);
    RadioButton radioBtn1 = new RadioButton(this);
    RadioButton radioBtn2 = new RadioButton(this);
    RadioButton radioBtn3 = new RadioButton(this);

    radioBtn1.setText("Less");
    radioBtn2.setText("Normal");
    radioBtn3.setText("More");


    radioGroup.addView(radioBtn1);
    radioGroup.addView(radioBtn2);
    radioGroup.addView(radioBtn3);

    radioGroup.check(radioBtn2.getId());

6
RadioGroup radioGroup = new RadioGroup(context);
RadioButton radioBtn1 = new RadioButton(context);
RadioButton radioBtn2 = new RadioButton(context);
RadioButton radioBtn3 = new RadioButton(context);

radioBtn1.setText("Less");
radioBtn2.setText("Normal");
radioBtn3.setText("More");

radioGroup.addView(radioBtn1);
radioGroup.addView(radioBtn2);
radioGroup.addView(radioBtn3);
radioBtn2.setChecked(true);

গুরুত্বপূর্ণ বিষয়টি হল setChecked()রেডিও গ্রুপে সমস্ত রেডিও বোতাম যুক্ত হওয়ার পরে ব্যবহার করা। তারপরে, প্রয়োজনীয় radioGroup.check(radioBtn2.getId())নয়
হার্টমুট ফিজিটঞ্জার

3

আমার কলেজের কোডেও একই সমস্যা ছিল। আপনার রেডিও গ্রুপটি আপনার রেডিও বোতামগুলির সাথে সঠিকভাবে সেট না করা হওয়ায় এটি শোনায়। এই কারণেই আপনি রেডিও বোতামগুলি বহু-নির্বাচন করতে পারেন। আমি অনেক কিছুই চেষ্টা করেছিলাম, অবশেষে আমি একটি কৌশল করেছি যা আসলে ভুল, কিন্তু ভাল কাজ করে।

for ( int i = 0 ; i < myCount ; i++ )
{
    if ( i != k )
    {
        System.out.println ( "i = " + i );
        radio1[i].setChecked(false);
    }
}

এখানে আমি লুপের জন্য একটি সেট করেছি, যা উপলব্ধ রেডিও বোতামগুলির জন্য পরীক্ষা করে এবং নতুন ক্লিক করা ব্যতীত প্রত্যেককে ডি-সিলেক্ট করে। এটি চেষ্টা করুন।



0

এটি রেডিও গ্রুপের একটি বাগ

RadioButton radioBtn2 = new RadioButton(context);

ভিডিআইড ছাড়াই রেডিওবিটিএন 2, এবং জেনারেটভিউআইডি অন চিডভিউ অ্যাডেড () এ রয়েছে

public void onChildViewAdded(View parent, View child) {
    if (parent == RadioGroup.this && child instanceof RadioButton) {
        int id = child.getId();
        // generates an id if it's missing
        if (id == View.NO_ID) {
            id = View.generateViewId();
            child.setId(id);
        }
        ((RadioButton) child).setOnCheckedChangeWidgetListener(
                mChildOnCheckedChangeListener);
    }

    if (mOnHierarchyChangeListener != null) {
        mOnHierarchyChangeListener.onChildViewAdded(parent, child);
    }
}

সুতরাং, প্রথম রেডিওগ্রুপ.এডিডিভিউ (রেডিওবিটিএন 2), তারপরে RadioBtn2.setChecked (সত্য);

এটার মত:

RadioGroup radioGroup = new RadioGroup(context);
RadioButton radioBtn1 = new RadioButton(context);
RadioButton radioBtn2 = new RadioButton(context);
RadioButton radioBtn3 = new RadioButton(context);

radioBtn1.setText("Less");
radioBtn2.setText("Normal");
radioBtn3.setText("More");

radioGroup.addView(radioBtn1);
radioGroup.addView(radioBtn2);
radioGroup.addView(radioBtn3);

radioBtn2.setChecked(true);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.