有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (1) 个答案

  1. # 1 楼答案

    首先,将isSelected()属性保存在onSaveInstanceState()

    public final String STATE_SELECTED = "state_selected";
    
    @Override
    public void onSaveInstanceState(Bundle savedInstanceState) {
        super.onSaveInstanceState(savedInstanceState);
        savedInstanceState.putBoolean(STATE_SELECTED, button.isSelected());
    }
    

    然后在onRestoreInstanceState()中访问并使用该值

    @Override
    public void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        boolean selected = savedInstanceState.getBoolean(STATE_SELECTED);
        button.setSelected(selected);
        if (selected) // Do some stuff
        else //Do some other stuff
    }
    

    希望这有帮助

    编辑:作为对您评论的回应,以下是您如何对一系列按钮执行此操作:

    public final String STATE_SELECTED = "state_selected";
    public Button[] buttons; // This is populated elsewhere
    
    @Override
    public void onSaveInstanceState(Bundle savedInstanceState) {
        super.onSaveInstanceState(savedInstanceState);
        boolean[] selected = new boolean[buttons.length];
        for (int i = 0; i < buttons.length; i++) selected[i] = buttons[i].isSelected();
        savedInstanceState.putBooleanArray(STATE_SELECTED, selected);
    }
    
    @Override
    public void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        boolean[] selected = savedInstanceState.getBooleanArray(STATE_SELECTED);
        for (int i = 0; i < buttons.length; i++) button[i].setSelected(selected[i]);
    }