Android studio 将开关状态转换为布尔值
我试图获取开关的值,并将数据告诉另一个类 我没有使用switch语句,我有一个用户可以选中或取消选中的物理开关 我需要得到这个开关的值,以便在另一个类中使用数据 以下是我尝试使用的: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 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。把一切都搞定了: