Android的 - 检查单选ID在一个的LinearLayout RadioGroup中 [英] Android - Check RadioButton ID in a RadioGroup with LinearLayout
本文介绍了Android的 - 检查单选ID在一个的LinearLayout RadioGroup中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否有任何可能的方式来获得所选择的单选按钮
在此布局?因为 rg.getCheckedRadioButtonId()
不工作的此布局。我不能让我的每个单选按钮ID
的。这就像我所有的单选按钮
超出我的无线电集团
< RadioGroup中
机器人:layout_width =match_parent
机器人:layout_height =WRAP_CONTENT
机器人:ID =@ + ID / RG
机器人:比重=中心
机器人:layout_centerVertical =真
机器人:layout_alignParentStart =真正的> <的LinearLayout
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT>
<单选
机器人:ID =@ + ID / RAD1
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_marginLeft =5DP/> <单选
机器人:ID =@ + ID / RAD2
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_marginRight =5DP/>
< / LinearLayout中>
<的LinearLayout
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT>
<单选
机器人:ID =@ + ID / RAD3
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_marginLeft =5DP/> <单选
机器人:ID =@ + ID / RAD4
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_marginRight =5DP/>
< / LinearLayout中>
< / RadioGroup中>
所以我所做的就是这样的,但我只能得到一个的ID 单选
。我怎样才能让我的单选
键,得到的是选择的所有ID?
bt.setOnClickListener(新View.OnClickListener(){
@覆盖
公共无效的onClick(视图v){ INT radioButtonId = rg.getCheckedRadioButtonId();
如果(rg.getCheckedRadioButtonId()!= - 1){ 单选selectedans =(单选)findViewById(radioButtonId);
。字符串selectedansText = selectedans.getText()的toString(); 如果(selectedansText ==答案[位置]){ // SelectedansText匹配的答案 }
如果(selectedansText!=答案[位置]){
// selectedansText不匹配的答案
}
rg.clearCheck(); 如果(位置< question.length){
tv.setText(的问题[位置]);
r1.setText(选[位置* 4]);
r2.setText(选[位置* 4 + 1]);
r3.setText(选[位置* 4 + 2]);
r4.setText(选[位置* 4 + 3]);
}其他{ 意向意图=新意图(grade_four_post_test.this,grade_four_post_results.class);
startActivity(意向); }
}
其他
{
Toast.makeText(grade_four_post_test.this,选择答案,
Toast.LENGTH_SHORT).show(); }
}
}
);
解决方案
检查这个答案我已经在我的工作室完成的,希望这有助于
公共类StackOne扩展AppCompatActivity { 私人单选按钮RB1,RB2,RB3,RB4;
私人RadioGroup中RG;
私人字符串selectedType =; @覆盖
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.stack_one); RB1 =(单选)findViewById(R.id.rad1);
RB2 =(单选)findViewById(R.id.rad2);
RB3 =(单选)findViewById(R.id.rad3);
RB4 =(单选)findViewById(R.id.rad4);
RG =(RadioGroup中)findViewById(R.id.rg); GetSelectedRadioButton();
} 私人无效GetSelectedRadioButton(){ rg.setOnCheckedChangeListener(新RadioGroup.OnCheckedChangeListener(){
@覆盖
公共无效onCheckedChanged(RadioGroup中组,诠释checkedId){ 开关(group.getCheckedRadioButtonId()){
案例R.id.rad1:
selectedType =rButton1;
rb1.setChecked(真);
Toast.makeText(StackOne.this,单选框选中1,Toast.LENGTH_LONG).show();
打破;
案例R.id.rad2:
selectedType =rButton2;
rb2.setChecked(真);
Toast.makeText(StackOne.this,单选框选中2,Toast.LENGTH_LONG).show();
打破;
案例R.id.rad3:
selectedType =rButton2;
rb3.setChecked(真);
Toast.makeText(StackOne.this,单选框选中3,Toast.LENGTH_LONG).show();
打破;
案例R.id.rad4:
selectedType =rButton2;
rb4.setChecked(真);
Toast.makeText(StackOne.this,单选框选中4,Toast.LENGTH_LONG).show();
打破; }
}
});
}
}
Is there any possible way to get the selected radio button
in this layout? because rg.getCheckedRadioButtonId()
not working on this layout. I can't get each of my radiobuttons ID
. It's like all my radio button
are out of my radio Group
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/rg"
android:gravity="center"
android:layout_centerVertical="true"
android:layout_alignParentStart="true">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/rad1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"/>
<RadioButton
android:id="@+id/rad2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/rad3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"/>
<RadioButton
android:id="@+id/rad4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"/>
</LinearLayout>
</RadioGroup>
so what i did is like this, but I can only get the ID of one radiobutton
. How can I get all ID of my radiobutton
and get what is selected?.
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int radioButtonId = rg.getCheckedRadioButtonId();
if(rg.getCheckedRadioButtonId()!= -1){
RadioButton selectedans = (RadioButton) findViewById(radioButtonId);
String selectedansText = selectedans.getText().toString();
if (selectedansText == answer[position]) {
//SelectedansText match with answer
}
if(selectedansText != answer[position]) {
//selectedansText not match with answer
}
rg.clearCheck();
if (position < question.length) {
tv.setText(question[position]);
r1.setText(opts[position * 4]);
r2.setText(opts[position * 4 + 1]);
r3.setText(opts[position * 4 + 2]);
r4.setText(opts[position * 4 + 3]);
} else {
Intent intent = new Intent(grade_four_post_test.this, grade_four_post_results.class);
startActivity(intent);
}
}
else
{
Toast.makeText(grade_four_post_test.this, "Choose Answer",
Toast.LENGTH_SHORT).show();
}
}
}
);
解决方案
Check this answer i have done in my studio, hope this helps,
public class StackOne extends AppCompatActivity {
private RadioButton rb1, rb2, rb3, rb4;
private RadioGroup rg;
private String selectedType = "";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.stack_one);
rb1 = (RadioButton) findViewById(R.id.rad1);
rb2 = (RadioButton) findViewById(R.id.rad2);
rb3 = (RadioButton) findViewById(R.id.rad3);
rb4 = (RadioButton) findViewById(R.id.rad4);
rg = (RadioGroup) findViewById(R.id.rg);
GetSelectedRadioButton();
}
private void GetSelectedRadioButton() {
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (group.getCheckedRadioButtonId()) {
case R.id.rad1:
selectedType = "rButton1";
rb1.setChecked(true);
Toast.makeText(StackOne.this,"Radiobutton 1 checked",Toast.LENGTH_LONG).show();
break;
case R.id.rad2:
selectedType = "rButton2";
rb2.setChecked(true);
Toast.makeText(StackOne.this,"Radiobutton 2 checked",Toast.LENGTH_LONG).show();
break;
case R.id.rad3:
selectedType = "rButton2";
rb3.setChecked(true);
Toast.makeText(StackOne.this,"Radiobutton 3 checked",Toast.LENGTH_LONG).show();
break;
case R.id.rad4:
selectedType = "rButton2";
rb4.setChecked(true);
Toast.makeText(StackOne.this,"Radiobutton 4 checked",Toast.LENGTH_LONG).show();
break;
}
}
});
}
}
Checkout this for more detail.
这篇关于Android的 - 检查单选ID在一个的LinearLayout RadioGroup中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文