অ্যান্ড্রয়েডে কোনও রেডিওগ্রুপের নির্বাচিত সূচকটি কীভাবে পাবেন


213

অ্যান্ড্রয়েডে কোনও রেডিওগ্রুপের নির্বাচিত সূচক পাওয়ার কোনও সহজ উপায় আছে বা পরিবর্তনগুলি শোনার জন্য এবং আমাকে সর্বশেষ সূচকটি নির্বাচিত করে এমন কিছু পেতে আমাকে কি অনিকচেকড চ্যাঞ্জলিস্টনার ব্যবহার করতে হবে?

উদাহরণ এক্সএমএল:

<RadioGroup android:id="@+id/group1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical">
    <RadioButton android:id="@+id/radio1" android:text="option 1" android:layout_width="wrap_content" android:layout_height="wrap_content" />
    <RadioButton android:id="@+id/radio2" android:text="option 2" android:layout_width="wrap_content" android:layout_height="wrap_content" />
    <RadioButton android:id="@+id/radio3" android:text="option 3" android:layout_width="wrap_content" android:layout_height="wrap_content" />
    <RadioButton android:id="@+id/radio4" android:text="option 4" android:layout_width="wrap_content" android:layout_height="wrap_content" />
    <RadioButton android:id="@+id/radio5" android:text="option 5" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</RadioGroup>

কোনও ব্যবহারকারী নির্বাচন করলে option 3আমি সূচক পেতে চাই, ২।

উত্তর:


479

আপনার এমন কিছু করতে সক্ষম হওয়া উচিত:

int radioButtonID = radioButtonGroup.getCheckedRadioButtonId();
View radioButton = radioButtonGroup.findViewById(radioButtonID);
int idx = radioButtonGroup.indexOfChild(radioButton);

যদি RadioGroupএতে অন্যান্য ভিউ থাকে (যেমন TextView) থাকে তবে indexOfChild()পদ্ধতিটি ভুল সূচকে ফিরে আসবে।

এতে নির্বাচিত RadioButtonপাঠ্য পেতে RadioGroup:

 RadioButton r = (RadioButton) radioButtonGroup.getChildAt(idx);
 String selectedtext = r.getText().toString();

11
তবে কী যদি সেই বোতামগুলির android:idবৈশিষ্ট্যগুলি সেট না থাকে ?
নিউরন্ট

@PP বা পিতা বা রেডিও বোতামগুলির কোনও আইডি সেট না করে রেডিও বোতাম অ্যাক্সেস করার ক্ষেত্রে আমার একই সন্দেহ রয়েছে have
হত্যাকারী

2
@ নিউরন্ট যতক্ষণ আপনি রেডিওগ্রুপ.ফাইন্ডভিউবিআইআইডি (রেডিওবাটন আইডি) করেন ততক্ষণ এটি কাজ করবে। রেডিওগোষ্ঠীটি 1, 2, 3, 4, এবং এর মতো ভিউ এর আইডি হিসাবে সেট করে, তাই আপনি যদি তাদের প্রসঙ্গের মধ্যে অনুসন্ধান করেন তবে এটি কাজ করবে
রেইনহার্ড

এটি ডিফল্ট (এবং ব্যবহারকারী দ্বারা অচ্ছুত) রেডিওবাটন সেট করা থাকলে এটি কাজ করছে না।
নিনজা কোডিং

2
@ নিনজাকোডিং আপনি যদি আমার মতো একই ভুলটি করেন তবে আপনাকে রেডিওবাটন.সেটচেকড (সত্য) নয়, রেডিওগ্রুপ.কেককে (নির্বাচিতডাডিয়াবাটন.আইডি) কল করে ডিফল্ট (প্রাথমিক) রেডিও বোতামটি সেট করতে হবে।
লেন্সফ্লেরে

108

এই কাজ করা উচিত,

int index = myRadioGroup.indexOfChild(findViewById(myRadioGroup.getCheckedRadioButtonId()));

5
আপনি যদি খণ্ডে ব্যবহার করেন তবে getActivity ()। FindViewById () ব্যবহার করুন।
সানজিৎ এ

56

আপনার রেডিও গ্রুপের একটি রেফারেন্স থাকতে পারে এবং getCheckedRadioButtonId ()চেক করা রেডিও বোতামের আইডি পেতে ব্যবহার করতে পারেন। এখানে একবার দেখুন

RadioGroup radioGroup = (RadioGroup)findViewById(R.id.radio_group);

তারপরে আপনার যখন নির্বাচিত রেডিও বিকল্পটি পাওয়া দরকার।

int checkedRadioButtonId = radioGroup.getCheckedRadioButtonId();
if (checkedRadioButtonId == -1) {
    // No item selected
}
else{
    if (checkedRadioButtonId == R.id.radio_button1) {
        // Do something with the button
    }
}

হ্যাঁ, এটি চেক করা রেডিও বোতামের আইডি, তবে রেডিও গ্রুপের রেডিও বোতামের সূচকটি কী?
জন বোকার

আমি আইডিটি পেতে পারি, আমি সূচক চাই, তারা আলাদা are
জন বোকার

সূচক বলতে কী বোঝ? এটি কি তালিকায় রয়েছে?
স্টিফান বসবলি

যদি আমার রেডিওগ্রুপে ৫ টি রেডিওব্যাটন থাকে এবং ব্যবহারকারী ২ য়টি নির্বাচন করতে চান তবে আমি ২ পেতে চাইছি, রেডিওগ্রুপে নির্বাচিত রেডিওবুটনের সূচক। এটি কোনও তালিকা-দর্শন নয়।
জন বোকার

ব্যবহারকারী যদি ২ য় বোতামটি পেতে চান তৃতীয় বোতামটি নির্বাচন করে তবে তা স্পষ্ট করে বলতে? রেডিও গ্রুপ এবং বোতামের সূচী নেই।
স্টিফান বসবলি

27

এটা চেষ্টা কর

        RadioGroup  group= (RadioGroup) getView().findViewById(R.id.radioGroup);
        group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                View radioButton = radioGroup.findViewById(i);
                int index = radioGroup.indexOfChild(radioButton);
            }
        });

এটি কাজ! তবে আমরা বুঝতে পারি না কেন আমাদের এই "রেডিওবটন" ভিউটি ব্যবহার করা দরকার ..
অ্যালেক্সএস



6

// নির্বাচিত আইটেমটির আইডি পেতে ব্যবহার করুন

int selectedID = myRadioGroup.getCheckedRadioButtonId();

// নির্বাচিত আইটেমটি দেখুন

View selectedView = (View)findViewById( selectedID);

6

এটি আমার পক্ষে এইভাবে পুরোপুরি কাজ করেছিল:

    RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radio_group);
    int radioButtonID = radioGroup.getCheckedRadioButtonId();
    RadioButton radioButton = (RadioButton) radioGroup.findViewById(radioButtonID);
    String selectedtext = (String) radioButton.getText();

5

আপনার যা দরকার তা হ'ল প্রথমে আপনার রেডিওবাটনে মান সেট করা, উদাহরণস্বরূপ:

RadioButton radioButton = (RadioButton)findViewById(R.id.radioButton);      
radioButton.setId(1);        //some int value

এবং তারপরেই যখনই এই প্রশস্ত রেডিওবাটনটি চয়ন করা হবে আপনি যে আইডি দিয়েছিলেন তা দিয়ে আপনি এর মানটি টানতে পারেন

RadioGroup radioGroup = (RadioGroup)findViewById(R.id.radioGroup);                     
int whichIndex = radioGroup.getCheckedRadioButtonId(); //of course the radioButton
                                                       //should be inside the "radioGroup"
                                                       //in the XML

চিয়ার্স!


5
radioSexGroup=(RadioGroup)findViewById(R.id.radioGroup);

  btnDisplay=(Button)findViewById(R.id.button);

  btnDisplay.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View v) {
        int selectedId=radioSexGroup.getCheckedRadioButtonId();
        radioSexButton=(RadioButton)findViewById(selectedId);
        Toast.makeText(MainActivity.this,radioSexButton.getText(),Toast.LENGTH_SHORT).show();
     }
  });


2

শুধু এটি ব্যবহার করুন:

    int index = 2;
    boolean option3Checked = radioGroup.getCheckedRadioButtonId() == radioGroup.getChildAt(2).getId();

1

আপনি করতে পারেন

findViewById

রেডিও গ্রুপ থেকে

এখানে এটি নমুনা:

((RadioButton)my_radio_group.findViewById(R.id.radiobtn_veg)).setChecked(true);

1

আপনি সহজভাবে পারেন

-অনক্রিয়েট পদ্ধতি থেকে রেডিও গ্রুপ এবং একটি রেডিও বোতামটি ঘোষণা করুন

private RadioGroup GrupName;
private RadioButton NameButton;

-আনক্রিট পদ্ধতিতে ভিউ আইডি সেট করুন

GrupName = (RadioGroup) findViewById(R.id.radioGroupid);

ব্যবহার করে নির্বাচিত রেডিওবটন আইডি নিন

int id = GroupName.getCheckedRadioButtonId();

-আইডিটি বোতাম নির্বাচন করা ভিউয়ের সাথে মেলে

NameButton = (RadioButton) findViewById(id);

-আসলে রেডিও বোতামের মান পান

String valueExpected = NameButton.getText().toString();

--- পিএস: আপনি যদি কোনও মূল্য চান না, তবে আপনি এটি করতে পারেন

int valueExpectedIn = Integer.parseInt(valueExpected);

1

আপনার গ্রুপে একটি টেক্সটভিউ বা কোনও অ রেডিওবটন থাকলেও সঠিক অবস্থানটি পাওয়ার জন্য এখানে একটি কোটলিন এক্সটেনশান ।

fun RadioGroup.getCheckedRadioButtonPosition(): Int {
    val radioButtonId = checkedRadioButtonId
    return children.filter { it is RadioButton }
        .mapIndexed { index: Int, view: View ->
            index to view
        }.firstOrNull {
            it.second.id == radioButtonId
        }?.first ?: -1
}


0
radioSexGroup = (RadioGroup) findViewById(R.id.radioSex);
btnDisplay = (Button) findViewById(R.id.btnDisplay);
btnDisplay.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // get selected radio button from radioGroup
            int selectedId = radioSexGroup.getCheckedRadioButtonId();
            // find the radiobutton by returned id
            radioSexButton = (RadioButton) findViewById(selectedId);
Toast.makeText(MainActivity.this,radioSexButton.getText(),Toast.LENGTH_SHORT).show();
        }
    });
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.