Выбор радиокнопки Изменения Тост на Android - PullRequest
3 голосов
/ 29 апреля 2010

Я писал простое тестовое приложение. В приложении есть две радиокнопки. Есть идентификаторы "radio_red" и "radio_blue". Я хотел создать событие onClickListener, которое считывает текст, связанный с кнопкой, а затем возвращает простое «правильное» или «неправильное» значение.

Вот пример кода:

private OnClickListener radio_listener = new OnClickListener() {
    public void onClick(View v){
        RadioButton rb = (RadioButton) v;
        String ans =  rb.getText().toString();
        String an1 = "";

        if (ans.trim() == "Yes") {
            ans = "That's Right.";
        }
            else if (ans.trim() == "No") {
                ans = "thats wrong.";
            }
            else {
                ans = "none.";
            }

        Toast.makeText(v.getContext(), ans , Toast.LENGTH_SHORT).show();
    }

Пока радости нет. Вот мой фрагмент кода. Я проверил свой "main.xml", и текст, связанный с кнопками, указан правильно. Я добавил отделку, чтобы убедиться в этом. Тем не менее, все, что когда-либо возвращается в тосте, «нет». Что мне не хватает? Заранее спасибо за любую помощь.

Ответы [ 3 ]

6 голосов
/ 12 января 2012

У меня была такая же проблема раньше .... У меня есть правильное решение для нее.

radioGroup1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) { 
                RadioButton radioButton = (RadioButton) findViewById(checkedId);
                Toast.makeText(Location.this, "" + radioButton.getText(), 2000).show(); 
            }
});
6 голосов
/ 29 апреля 2010

Вы хотите иметь дело с RadioGroup, а не с RadioButton. RadioGroup может рассказать вам больше мета-подробностей о радиоуправлении, например, какой из них отмечен. Например, в вашем слушателе вы должны использовать RadioGroup.getCheckedRadioButtonId().

В качестве альтернативы, вы можете добавить слушателя к самой RadioGroup, который устанавливает переключатель в фоновом режиме, используя RadioGroup.setOnCheckedChangeListener(). Он имеет возможность сообщать вам, какой RadioButton был нажат.

2 голосов
/ 12 января 2012

Я думаю, что вы сделали одну ошибку при написании Условие здесь,

ans.trim() == "Yes"

Так и должно быть,

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