চাইল্ড রেডিওবোটনের মাধ্যমে লুপিং করা এবং নির্বাচিত সূচকে রেডিও বোতামটি নির্বাচন করা বাদে অ্যান্ড্রয়েডে কোনও রেডিওগ্রুপের নির্বাচিত সূচক সেট করার কোনও উপায় আছে কি?
দ্রষ্টব্য: আমি রান সময়ে রেডিও বোতাম গ্রুপকে জনসাধারণের মধ্যে আছি।
চাইল্ড রেডিওবোটনের মাধ্যমে লুপিং করা এবং নির্বাচিত সূচকে রেডিও বোতামটি নির্বাচন করা বাদে অ্যান্ড্রয়েডে কোনও রেডিওগ্রুপের নির্বাচিত সূচক সেট করার কোনও উপায় আছে কি?
দ্রষ্টব্য: আমি রান সময়ে রেডিও বোতাম গ্রুপকে জনসাধারণের মধ্যে আছি।
উত্তর:
যদি আপনার রেডিও গ্রুপটি একটি লেআউট এক্সএমএল ফাইলে সংজ্ঞায়িত করা হয় তবে প্রতিটি বোতাম একটি আইডি বরাদ্দ করা যেতে পারে। তারপরে আপনি ঠিক এটির মতো একটি বোতাম চেক করুন
radioGroup.check(R.id.myButtonId);
আপনি যদি আপনার রেডিও গ্রুপকে প্রোগ্রামগতভাবে তৈরি করেন (তবে এটি কীভাবে করবেন তাও আমি নিশ্চিত নই ...), আপনি কেবল রেডিও গ্রুপের জন্য একটি বিশেষ লেআউট এক্সএমএল ফাইল তৈরি করার বিষয়টি বিবেচনা করতে চাইতে পারেন যাতে আপনি আর.আইডি নির্ধারণ করতে পারেন * * আইডি বোতাম।
দয়া করে নীচের উত্তরটি দেখুন যদি আপনি প্রকৃতপক্ষে সূচকে রেডিও বোতাম গোষ্ঠীটি নির্ধারণের জন্য খুঁজছেন তবে নীচের উত্তরটি দেখুন।
((RadioButton)radioGroup.getChildAt(index)).setChecked(true);
check
পদ্ধতির যুক্তি হিসাবে ব্যবহার করতে পারেন ।
প্রশ্নটি "নির্বাচিত INDEX সেট" বলেছিল, এটি সূচী দ্বারা এটি কীভাবে সেট করবেন তা এখানে:
((RadioButton)radioGroup.getChildAt(index)).setChecked(true);
........
অতিরিক্ত তথ্য: মনে হয় গুগল আপনাকে সূচকের পরিবর্তে আইডি ব্যবহার করতে চায় কারণ আইডি ব্যবহার করা আরও বাগ প্রুফ। উদাহরণস্বরূপ, যদি আপনার রেডিওগ্রুপে অন্য একটি ইউআই উপাদান থাকে, বা অন্য বিকাশকারী যদি রেডিওব্যাটনগুলিকে পুনরায় অর্ডার দেয় তবে সূচকগুলি পরিবর্তিত হতে পারে এবং আপনি যা প্রত্যাশা করেছিলেন তা তা নাও হতে পারে। তবে আপনি যদি একমাত্র বিকাশকারী হন তবে এটি পুরোপুরি ঠিক আছে।
সিভাশের উত্তর সঠিক:
((RadioButton)radioGroup.getChildAt(index)).setChecked(true);
তবে সচেতন থাকুন যে একটি রেডিওগ্রুপে রেডিওবটনগুলি ছাড়াও অন্য মতামত থাকতে পারে - যেমন উদাহরণ যা প্রতিটি পছন্দ অনুসারে একটি বিবর্ণ রেখা অন্তর্ভুক্ত করে।
<RadioGroup
android:id="@+id/radioKb"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RadioButton
android:id="@+id/kb1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:button="@null"
android:drawableRight="@android:drawable/btn_radio"
android:text="Onscreen - ABC" />
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#33000000" />
<RadioButton
android:id="@+id/kb2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:button="@null"
android:drawableRight="@android:drawable/btn_radio"
android:text="Onscreen - Qwerty" />
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#33000000" />
<RadioButton
android:id="@+id/kb3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:button="@null"
android:drawableRight="@android:drawable/btn_radio"
android:text="Standard softkey" />
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#33000000" />
<RadioButton
android:id="@+id/kb4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:button="@null"
android:drawableRight="@android:drawable/btn_radio"
android:text="Physical keyboard" />
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#33000000" />
</RadioGroup>
এই ক্ষেত্রে 1 এর সূচক ব্যবহার করা উদাহরণস্বরূপ, একটি ত্রুটি তৈরি করবে। সূচী 1 এ আইটেমটি প্রথম বিভাজক লাইন - একটি রেডিওবটন নয়। এই উদাহরণে রেডিওবাটনগুলি 0, 2, 4, 6 সূচীতে রয়েছে।
এটি আমার জন্য ওয়ার্কড, আমি গতিসম্পন্নভাবে রেডিও বোতামটি তৈরি করেছি
private void createRadioButton() {
RadioButton[] rb = new RadioButton[5];
RadioGroup.LayoutParams layoutParams = new RadioGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
1.0f);
radioGroup.setOrientation(RadioGroup.HORIZONTAL);
for (int ID = 0; ID < 5; ID++) {
rb[ID] = new RadioButton(this);
rb[ID].setLayoutParams(layoutParams);
rb[ID].setText("Button_Text");
radioGroup.addView(rb[ID]); //the RadioButtons are added to the radioGroup instead of the layout
}
}
এখন একটি বোতাম ব্যবহার করে চেক করুন,
int radio_button_Id = radioGroup.getChildAt(index).getId();
radioGroup.check( radio_button_Id );
অনবিন্দ ভিউহোল্ডার ভিতরে বাটন গ্রুপে ট্যাগ সেট করুন
@Override
public void onBindViewHolder(final CustomViewHolder holder, final int position) {
...
holder.ButtonGroup.setTag(position);
}
এবং ভিউহোল্ডারটিতে
ButtonGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
...
int id = radioGroup.getCheckedRadioButtonId();
RadioButton radioButton = (RadioButton) radioGroup.findViewById(id);
int clickedPos = (Integer) radioGroup.getTag();
packageModelList.get(clickedPos).getPoll_quest()
}
কোটলিন ব্যবহার করে আপনি এটি তৈরি করতে পারেন
(radio_group_id.getChildAt(index) as RadioButton).isChecked = true
বা
radio_group_id.check(R.id.radio_button_id
)