我如何知道在Android Studio中选择了哪个单选按钮

时间:2018-10-31 12:45:21

标签: java android android-studio textview radio-button

我有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);

            }
        });

3 个答案:

答案 0 :(得分:2)

您可以实现开关RadiogroupcheckedId

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();

答案 1 :(得分:0)

尚不清楚您拥有的价格数组中的值是什么,或者getItem_price()方法的实现是什么。

但是似乎您已经在单选按钮的标签中设置了名称,这就是为什么您能够获取它并填充selectedSize文本视图的原因。

据我所知,您可以采用两种方法

方法1: 创建一个具有名称和价格以及ID的披萨对象的列表。 在单选按钮的标签中设置ID。这样,您就可以使用id来获取名称和价格,您将通过radioButton.getTag()获得表单。

方法2: 将名称和价格与|相连,例如size1 | 25,并将其设置为单选按钮的标签。 然后,您可以在getTag上使用split来获取名称和价格。

希望这可以帮助您解决问题。

答案 2 :(得分:0)

为此,您可以使用开关,请遵循

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;
        }   
    }
});