Как узнать, какой переключатель выбран в Android-студии - PullRequest
0 голосов
/ 31 октября 2018

У меня есть 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 голосов
/ 31 октября 2018

Вы можете реализовать переключатель 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();
0 голосов
/ 31 октября 2018

для этой цели вы можете использовать переключатель, пожалуйста, следуйте этому

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;
        }   
    }
});
0 голосов
/ 31 октября 2018

Не совсем ясно, какие значения в вашем ценовом массиве или какова реализация вашего метода getItem_price ().

Но похоже, что вы установили имя в теге переключателей, и поэтому вы можете получить его и заполнить свой текстовый вид selectedSize.

Насколько я понимаю вашу проблему, вы можете использовать два подхода

Подход 1: создать список объектов пиццы с именем и ценой и идентификатором. Установите идентификатор в теге переключателя. Таким образом, вы можете получить имя и цену, используя идентификатор, который вы получите в форме radioButton.getTag ().

Подход 2: Объедините имя и цену с помощью |, например, size1 | 25, и установите для этого тега переключатель. Затем вы можете использовать split для getTag, чтобы получить как имя, так и цену.

Надеюсь, это поможет вам решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...