【问题标题】:Radio button status is always 'checked'单选按钮状态始终为“已选中”
【发布时间】:2014-01-13 06:35:06
【问题描述】:

这是我的代码:

 RadioButton daysAsCustomerRadio = (RadioButton)view.findViewById(R.id.days_as_customers_radio);
     daysAsCustomerRadio.setOnClickListener(new RadioButtonHandler());

    //Action Listener for the Radio Button
        private class RadioButtonHandler implements OnClickListener
        {

            @Override
            public void onClick(View view) {
                // TODO Auto-generated method stub
                RadioButton checkedButton = (RadioButton)view.findViewById(view.getId());
                Log.d("CHECKED_STAT", "Button stat: "+daysAsCustomerRadio.isChecked());
Log.d("CHECKED_STAT_1", "Button stat: "+checkedButton .isChecked());

                if(checkedButton.isChecked())
                {
                    checkedButton.setChecked(false);
                }
                else
                {
                    checkedButton.setChecked(true);
                }


            }

        }

我想做的是这个。

  1. 如果用户单击了选中的单选按钮,则取消选中它。
  2. 如果用户单击了取消选择的单选按钮,则选择它。

但情况是,单选按钮状态始终为true,即使未选中单选按钮也是如此。我什至尝试在 onCreateView() (这是一个 Fragment 类)中首先将其设置为 false,但仍然是相同的结果。

这是为什么?

PS。没有RadioGroups,也不能添加。

【问题讨论】:

  • 把这行RadioButton checkedButton = (RadioButton)view.findViewById(view.getId());改成RadioButton checkedButton = (RadioButton)view;
  • 使用复选框而不是单选按钮。单选按钮应在组中使用,并且在所选组中始终有一个。
  • @Henry:我不能。我有一个可以使用的线框
  • 我会和设计师谈谈。这个用例的 UI 元素是错误的。
  • 请查看更新答案

标签: java android user-interface android-fragments radio-button


【解决方案1】:

最后,我设法通过一个技巧解决了这个问题。我有布尔变量来检查 RadioButtons 是否被选中。

【讨论】:

    猜你喜欢
    • 2019-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 2014-07-24
    • 2019-06-30
    • 2021-07-08
    相关资源
    最近更新 更多