java - 尝试根据选择的单选按钮保存单选组的状态

标签 java android

我正在做一个项目,我在几个单选组中有很多单选按钮。我想做的是根据第一个 radio 组中的特定按钮保存所有 radio 组的配置。例如,第一个单选组称为选择,我有 4 个不同的选择单选按钮。当我从该组内的 4 个按钮切换时,我希望其他单选组按钮自动填充到它们以前的按钮,我还想在切换时保存当前按钮的配置广播组。因此,例如,如果第一个单选组中的单选按钮被切换,它会记住前一个单选按钮的配置,并在返回到该 View 时自动再次加载。

最佳答案

创建一个模型来模拟所有这些。使用属性更改监听器(或许多其他监听器)允许您监听状态更新。每当您在模型上调用 setter 时,状态都会更新。

例如,当您将外部单选按钮组设置为第二个按钮时,模型可以为所有依赖于该状态的按钮抛出属性更改事件。内部单选按钮状态的 getter 可以取决于外部按钮的状态。

您可能需要在 View 中添加监听器以监听按钮上的用户操作。这些监听器中的操作将调用模型上的 setter 。小心不要以这种方式引起递归事件。

例子:

这是您可以构建的模型示例。假设您有一个包含 2 个按钮的外部单选按钮组和一个包含 3 个按钮的内部按钮组。无论选择何种外部按钮,内部组选项始终相同。

public class Model {
    private int outerSelected = 0; // 0 or 1
    private InnerModel[] innerModels = new InnerModel[2];

    private class InnerModel {
        private int selected = 0; // 0, 1, or 2

        public void setSelected(int selected) {
            this.selected = selected;
            // Send event
        }

        public int getSelected() {
            return selected;
        }
    }

    public int getSelectedInnerModel() {
        return innerModels[outerSelected];
    }

    public int setOuterSelected(int outerSelected) {
        this.outerSelected = outerSelected;
        // send event for selectedInnerModel change
        // If you use beans binding, this should cause the view to re-query the 
        // getSelected on the InnerModel as well
    }
}

我不建议您实际使用整数。枚举是一个更好的主意,但我没有写出来。 (可选)您可以使此模型类在您的 View 中是私有(private)的。

关于java - 尝试根据选择的单选按钮保存单选组的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7919636/

相关文章:

android - Eclipse 报告渲染库比 ADT 插件更新

java - 删除 EditText 中的第二个点/逗号

java - 在 postgresql 和 java 中使用字符串数组

java - Android 将 Spinner 对齐到 Textview 的右侧

android - CouchDB 复制到 Android ...适用于 Android 应用程序、Android 浏览器还是?

javascript - 如何动态获取html5中的图表和报告?

java - Bean类与集合: which one should i prefer to hold data

java - 如何根据spring-security用户权限生成内容

java - 如何将 Firebase 数据与登录身份验证屏幕输入进行比较。安卓

java - 使用 setOnItemClickListener 和新 Intent 不起作用