Android studio 将开关状态转换为布尔值

Android studio 将开关状态转换为布尔值,android-studio,boolean,toggleswitch,Android Studio,Boolean,Toggleswitch,我试图获取开关的值,并将数据告诉另一个类 我没有使用switch语句,我有一个用户可以选中或取消选中的物理开关 我需要得到这个开关的值,以便在另一个类中使用数据 以下是我尝试使用的: Switch vibeBlocker = (Switch) findViewById(R.id.hideVibeSwitch); @Override public void onRestoreInstanceState(Bundle savedInstanceState) { super.onRe

我试图获取开关的值,并将数据告诉另一个类

我没有使用switch语句,我有一个用户可以选中或取消选中的物理开关

我需要得到这个开关的值,以便在另一个类中使用数据

以下是我尝试使用的:

Switch vibeBlocker = (Switch) findViewById(R.id.hideVibeSwitch);

@Override
    public void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    Boolean vibeHider = Boolean.valueOf(vibeBlocker);
}
我在Boolean vibeHider=Boolean.valueOfvibeBlocker;行上收到一个错误;。我不知道如何获取开关的值并将其转换为布尔值。我知道我可以使用像.toString;诸如此类,但对布尔人来说有什么相似之处吗

我需要在两个类之间传递开关的值,我认为这会起作用。如果有人知道这里的正确说法,或者更好的方法,请告诉我

谢谢


Nathan

我正在声明开关并通过Id找到它,但这对我来说不起作用。相反,我必须使用SharedReferenceManager将布尔值放入我的包中:

@Override
public void onSaveInstanceState(@NonNull Bundle savedInstanceState) {
    super.onSaveInstanceState(savedInstanceState);
    SharedPreferences mSharedPreferencesManager = PreferenceManager.getDefaultSharedPreferences(this);
    vibeBlock = mSharedPreferencesManager.getBoolean("vibration_checkbox", false);
    savedInstanceState.putBoolean("myBoolean", vibeBlock);
}
这就把布尔值放到了包中。以下是我在主要活动中如何取出的:

@Override
public void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    hideVibe = savedInstanceState.getBoolean("myBoolean");
}
我还补充说:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate();
    (Creation code)
    SharedPreferences mSharedPreferencesManager = PreferenceManager.getDefaultSharedPreferences(this);
    hideVibe = mSharedPreferencesManager.getBoolean("vibration_checkbox", false);

    if (hideVibe) {
        switchConv.setVisibility(View.GONE);
    } else if (!hideVibe) {
        switchConv.setVisibility(View.VISIBLE);
    }
}
这也是:

@Override
protected void onResume() {
    super.onResume();
    SharedPreferences mSharedPreferencesManager = PreferenceManager.getDefaultSharedPreferences(this);
    hideVibe = mSharedPreferencesManager.getBoolean("vibration_checkbox", false);
    if (hideVibe) {
        switchConv.setVisibility(View.GONE);
    } else if (!hideVibe) {
        switchConv.setVisibility(View.VISIBLE);
    }
}

这就成功了:

这样的方法应该很容易创建;但很难说清楚,因为我甚至不知道开关是什么。假设它有两个状态的开关。您可以创建一个接受开关并具有以下返回的函数:return switch.isOn;我真的发现了,我做错了。我是在声明切换,但实际上我应该使用SharedReferenceManager。把一切都搞定了: