我怎么知道在 Android studio 中选择了哪个单选按钮
How can I know which radio button is selected in Android studio
我有 3 个单选按钮,单击其中任何一个按钮后,它应该会更新 2 个文本视图。名称的一个文本视图和价格的另一个文本视图。
当我单击单选按钮时,名称会更新,但我面临如何从数组中获取项目价格的问题。每个单选按钮都有不同的定价。
代码:
pizzaSizeRadioGroup = (RadioGroup) findViewById(R.id.radioGroup);
pizzaSizeRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// Radio button checked
sizeSelect = (RadioButton) findViewById(checkedId);
selectedSize.setText(sizeSelect.getTag().toString());
// how to display the price from array
sizePrice = array_price_list[].getItem_price();
totalPriceDisplay.setText(sizePrice);
}
});
不完全清楚您的价格数组中的值是什么,或者您的 getItem_price() 方法的实现是什么。
但您似乎已经在单选按钮的标签中设置了名称,这就是为什么您能够获取它并填充您的 selectedSize 文本视图的原因。
据我了解你的问题,你可以采用两种方法
方法一:
创建一个包含名称、价格和 ID 的披萨对象列表。
在单选按钮的标签中设置 id。这样你就可以使用你将从 radioButton.getTag().
中获得的 id 来获取名称和价格
方法二:
用 | 连接名称和价格,例如 size1|25 并将其设置为单选按钮的标签。
然后你可以在 getTag 上使用 split 来获取名称和价格。
希望这能帮助您解决问题。
你可以实现 switch Radiogroup checkedId
pizzaSizeRadioGroup = (RadioGroup) findViewById(R.id.radioGroup);
pizzaSizeRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
{
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch(checkedId){
case R.id.radio0://Radio button id
// do operations specific to this selection
break;
case R.id.radio1://Radio button id
// do operations specific to this selection
break;
case R.id.radio2://Radio button id
// do operations specific to this selection
break;
}
}
});
或勾选选中的单选按钮
int selectedId = pizzaSizeRadioGroup.getCheckedRadioButtonId();
为此,您可以使用 switch,请遵循此
radiobuttoncheck.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
{
public void onCheckedChanged(RadioGroup rgroup, int r_id) {
switch(r_id){
case R.id.rbid1:
//show toast here to get idea
break;
case R.id.rbid2:
//show toast here to get idea
break;
}
}
});
我有 3 个单选按钮,单击其中任何一个按钮后,它应该会更新 2 个文本视图。名称的一个文本视图和价格的另一个文本视图。 当我单击单选按钮时,名称会更新,但我面临如何从数组中获取项目价格的问题。每个单选按钮都有不同的定价。
代码:
pizzaSizeRadioGroup = (RadioGroup) findViewById(R.id.radioGroup);
pizzaSizeRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// Radio button checked
sizeSelect = (RadioButton) findViewById(checkedId);
selectedSize.setText(sizeSelect.getTag().toString());
// how to display the price from array
sizePrice = array_price_list[].getItem_price();
totalPriceDisplay.setText(sizePrice);
}
});
不完全清楚您的价格数组中的值是什么,或者您的 getItem_price() 方法的实现是什么。
但您似乎已经在单选按钮的标签中设置了名称,这就是为什么您能够获取它并填充您的 selectedSize 文本视图的原因。
据我了解你的问题,你可以采用两种方法
方法一: 创建一个包含名称、价格和 ID 的披萨对象列表。 在单选按钮的标签中设置 id。这样你就可以使用你将从 radioButton.getTag().
中获得的 id 来获取名称和价格方法二: 用 | 连接名称和价格,例如 size1|25 并将其设置为单选按钮的标签。 然后你可以在 getTag 上使用 split 来获取名称和价格。
希望这能帮助您解决问题。
你可以实现 switch Radiogroup checkedId
pizzaSizeRadioGroup = (RadioGroup) findViewById(R.id.radioGroup);
pizzaSizeRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
{
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch(checkedId){
case R.id.radio0://Radio button id
// do operations specific to this selection
break;
case R.id.radio1://Radio button id
// do operations specific to this selection
break;
case R.id.radio2://Radio button id
// do operations specific to this selection
break;
}
}
});
或勾选选中的单选按钮
int selectedId = pizzaSizeRadioGroup.getCheckedRadioButtonId();
为此,您可以使用 switch,请遵循此
radiobuttoncheck.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
{
public void onCheckedChanged(RadioGroup rgroup, int r_id) {
switch(r_id){
case R.id.rbid1:
//show toast here to get idea
break;
case R.id.rbid2:
//show toast here to get idea
break;
}
}
});