这个问题已经有了答案:
Not able to dynamically set the setVisibility() parameter
2个答案
我正在保存和恢复我的一个活动中的视图可见性。为此,我调用mButton.getVisibility()并将其保存在Bundle中。在onrestore中,当我得到int值时,它显示一个错误。

Must be one of: View.VISIBLE, View.INVISIBLE, View.GONE less... (Ctrl+F1)
Reports two types of problems:
- Supplying the wrong type of resource identifier. For example, when calling Resources.getString(int id), you should be passing R.string.something, not R.drawable.something.
- Passing the wrong constant to a method which expects one of a specific set of constants. For example, when calling View#setLayoutDirection, the parameter must be android.view.View.LAYOUT_DIRECTION_LTR or android.view.View.LAYOUT_DIRECTION_RTL.

代码编译和运行时没有错误
代码
@Override
public void onSaveInstanceState(@NonNull Bundle savedInstanceState) {
    savedInstanceState.putInt("BUTTON_VISIBILITY", mButton.getVisibility());

    super.onSaveInstanceState(savedInstanceState);
}

public void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);

    mButton.setVisibility(savedInstanceState.getInt("BUTTON_VISIBILITY"));
    // savedInstanceState.getInt("BUTTON_VISIBILITY") is underlined red
}

最佳答案

正如我刚才所评论的,您可以添加@SuppressWarnings("ResourceType")。希望这有帮助!
按Alt键
android - 必须是以下之一:View.VISIBLE,View.INVISIBLE,View.GONE [复制]-LMLPHP

07-27 18:51