অ্যান্ড্রয়েডের একটি রেডিওবটনটিতে কীভাবে অনক্লিকলিস্টনার সেট করবেন?


109

আমার RadioButtonভিতরে দুটি আছে RadioGroup। আমি সেট করতে চান OnClickListenerসেই উপর RadioButtonগুলি। RadioButtonকোনটি ক্লিক করা হয়েছে তার উপর নির্ভর করে আমি একটিটির পাঠ্য পরিবর্তন করতে চাই EditText। আমি কীভাবে এটি অর্জন করতে পারি?

উত্তর:


234

আমি মনে করি এর চেয়ে আরও ভাল উপায় হ'ল RadioGroupশ্রোতাকে সে Viewঅনুযায়ী পরিবর্তন এবং আপডেট করার জন্য সেট করা (আপনার 2 বা 3 বা 4 ইত্যাদি শ্রোতা থাকা বাঁচায়)।

    RadioGroup radioGroup = (RadioGroup) findViewById(R.id.yourRadioGroup);        
    radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() 
    {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            // checkedId is the RadioButton selected
        }
    });

2
আমার জন্য কাজ করছিল না, অ্যালিপস প্রস্তাব করেছিল আমি @ ওভাররাইড যুক্ত করব এবং এটি স্থির থাকবে। ধন্যবাদ
জ্যাক ফ্রানজেন

হ্যাঁ আমি রেডিওগ্রুপটি ব্যবহার করব না যদি না এটি এক্সএমএলে সরাসরি পিতা বা মাতা হয় এবং আমি এটি সরাসরি অভিভাবক হিসাবে রাখতে পারি না কারণ এই বোকা রেডিওবন্টনটি কেন্দ্রের সাথে সংযুক্ত করা যায় না তাই আমাকে এটিকে একটি রৈখিক আড়ালে আবদ্ধ করতে হয়েছিল ...
Jaxx0rr

আপনি রেডিওগোটনটি রেডিওগ্রুপ ট্যাগের আওতায় xML এ অ্যান্ড্রয়েড: মাধ্যাকর্ষণ = "কেন্দ্র" স্থাপন করে চেষ্টা করতে পারেন । @ রুডলফ্রাইন
ওউজিইআইআই

যদি রেডিওবটন গতিশীলভাবে তৈরি হয় এবং আইডি না থাকে তবে আমরা কী করব?
অর্জুন ইশার

46

আশা করি এটা তোমাকে সাহায্য করবে...

RadioButton rb = (RadioButton) findViewById(R.id.yourFirstRadioButton);
rb.setOnClickListener(first_radio_listener);

এবং

OnClickListener first_radio_listener = new OnClickListener (){
 public void onClick(View v) {
   //Your Implementaions...
 }
};

1
মনোমুগ্ধকর মতো কাজ করেছেন, ক্লিক শ্রোতাদের উপর আপনার শেষ কোঁকড়া বন্ধনীর পরে একটি সেমিকোলন যুক্ত করতে ভুলবেন না
13:53 এ ভিনস্যায়েবল

পুরাতন তবে ভালো. গৃহীত উত্তর হতাশাগুলি তবে ইতিমধ্যে নির্বাচিত এমন কোনও কিছু ব্যবহারকারী বেছে নেওয়ার ক্ষেত্রে এটি হ্যান্ডেল করে না। এটি এটি পরিচালনা করে লজ্জাজনক রেডিওগ্রুপ শ্রোতা "পরিবর্তিত" বিবেচনা না করে "সেটসিলেক্টড" পরিচালনা করে না।
জ্যামিবি

27
 radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
    {
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            // checkedId is the RadioButton selected
            RadioButton rb=(RadioButton)findViewById(checkedId);
            textViewChoice.setText("You Selected " + rb.getText());
            //Toast.makeText(getApplicationContext(), rb.getText(), Toast.LENGTH_SHORT).show();
        }
    });

1
groupপ্রয়োজনীয় RadioButton rb=(RadioButton)group.findViewById(checkedId);
কৃত্রিম বোকামি

18

প্রশ্ন ছিল শনাক্তকারী যা রেডিও বোতাম ক্লিক করা হয়, তাহলে এটি আপনাকে কিভাবে পেতে পারেন বোতাম ক্লিক করা হয়

final RadioGroup radio = (RadioGroup) dialog.findViewById(R.id.radioGroup1);
        radio.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {

                View radioButton = radio.findViewById(checkedId);
                int index = radio.indexOfChild(radioButton);

                // Add logic here

                switch (index) {
                case 0: // first button

                    Toast.makeText(getApplicationContext(), "Selected button number " + index, 500).show();
                    break;
                case 1: // secondbutton

                    Toast.makeText(getApplicationContext(), "Selected button number " + index, 500).show();
                    break;
                }
            }
        });

10

আপনি এক্সএমএল লেআউট থেকে শ্রোতাদের যোগ করতে পারেন: android:onClick="onRadioButtonClicked"আপনার <RadioButton/>ট্যাগে।

<RadioButton android:id="@+id/radio_pirates"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/pirates"
    android:onClick="onRadioButtonClicked"/>

দেখুন Android বিকাশকারী SDK- রেডিও বোতাম বিস্তারিত জানার জন্য।


7

সেক্ষেত্রে অন্য কেউ গৃহীত উত্তরের সাথে লড়াই করছেন:

বিভিন্ন অন-চেকড চ্যাঞ্জলিস্টেনার-ইন্টারফেস রয়েছে। আমি চেকবক্স পরিবর্তন করা হয়েছে কিনা তা দেখতে আমি প্রথমটিতে যুক্ত করেছি।

import android.widget.CompoundButton.OnCheckedChangeListener;

বনাম

import android.widget.RadioGroup.OnCheckedChangeListener;

রিকি থেকে স্নিপেট যুক্ত করার সময় আমার ত্রুটি ছিল:

রেডিওগ্রুপ প্রকারে সেটঅনচেকড চ্যাঞ্জলিস্টনার (রেডিওগ্রুপ.অন চেকড চ্যাঞ্জলিস্টনার) পদ্ধতিটি আর্গুমেন্টের জন্য প্রযোজ্য নয় (নতুন কমপাউন্ডবটন.অনন চেকড চ্যাঞ্জলিস্টনার ()}})

আলীর উত্তর দিয়ে স্থির করা যেতে পারে:

new RadioGroup.OnCheckedChangeListener()

5

যেহেতু এই প্রশ্নটি জাভা সম্পর্কিত নয়, তাই আপনি কীভাবে কোটলিনে এটি করতে পারেন তা আমি যুক্ত করতে চাই :

radio_group_id.setOnCheckedChangeListener({ radioGroup, optionId -> {
        when (optionId) {
            R.id.radio_button_1 -> {
                // do something when radio button 1 is selected
            }
            // add more cases here to handle other buttons in the RadioGroup
        }
    }
})

এখানে সম্পর্কিত রেডিওগ্রুপের radio_group_idনিয়োগ দেওয়া আছে android:id। এটি এভাবে ব্যবহার করতে আপনাকে kotlinx.android.synthetic.main.your_layout_name.*আপনার ক্রিয়াকলাপের কোটলিন ফাইলটিতে আমদানি করতে হবে । এছাড়াও লক্ষ করুন যে radioGroupল্যাম্বডা প্যারামিটারটি অব্যবহৃত থাকলে _কোটলিন ১.১ থেকে এটি (আন্ডারস্কোর) দিয়ে প্রতিস্থাপন করা যেতে পারে ।


1
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.yourRadioGroup);     
    radioGroup.setOnClickListener(v -> {
                        // get selected radio button from radioGroup
                        int selectedId = radioGroup.getCheckedRadioButtonId();
                        // find the radiobutton by returned id
                        radioButton =  findViewById(selectedId);
                        String slectedValue=radioButton.getText()          
        });

কেবল উত্তর কোড পোস্ট করার পরিবর্তে দয়া করে এই উত্তরের জন্য একটি ব্যাখ্যা সরবরাহ করুন।
ScoobyDrew18

শেষ লাইনটি হওয়া দরকার: 'স্ট্রিং স্লেটেডভ্যালু = রেডিওবটন.সেট টেক্সট ()। টু স্ট্রিং ()'
11.1

0

কোটলিনের জন্য এখানে ল্যাম্বডা এক্সপ্রেশন যুক্ত করা হয়েছে এবং কোডটি অনুকূলিত করা হয়েছে।

   radioGroup.setOnCheckedChangeListener { radioGroup, optionId ->
        run {
            when (optionId) {
                R.id.radioButton1 -> {
                    // do something when radio button 1 is selected
                }
                R.id.radioButton2 -> {
                    // do something when radio button 2 is selected
                }
                // add more cases here to handle other buttons in the your RadioGroup
            }
        }
    }

আশা করি এটা তোমাকে সাহায্য করবে। ধন্যবাদ!

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