Java 获取onCreate()中开关的状态
所以我的问题是如何得到开关的状态 我有以下代码:Java 获取onCreate()中开关的状态,java,android,Java,Android,所以我的问题是如何得到开关的状态 我有以下代码: notificationSwitch.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(notificationSwitch.isChecked()){ System.out.println("Checked");
notificationSwitch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(notificationSwitch.isChecked()){
System.out.println("Checked");
SharedPreferences.Editor editor = getSharedPreferences("save", MODE_PRIVATE).edit();
editor.putBoolean("value", true);
editor.apply();
notificationSwitch.setChecked(true);
}else{
System.out.println("not checked");
SharedPreferences.Editor editor = getSharedPreferences("save", MODE_PRIVATE).edit();
editor.putBoolean("value", false);
editor.apply();
notificationSwitch.setChecked(false);
}
}
});
开关的状态保存在共享首选项中,如果我启动应用程序,开关的状态与我离开应用程序时的状态相同。但当我启动应用程序时,应该打印已选中或未选中,但它不打印任何内容我将根据标题回答: 要获取onCreate()中开关的状态,请执行以下操作: 更新
- 保持onclicklistener不变,并在onCreate中添加我在onclicklistener之前提供的代码:
3) 如果您什么也不做,请退出活动并返回。活动必须停止。我将根据标题回答: 要获取onCreate()中开关的状态,请执行以下操作: 更新
- 保持onclicklistener不变,并在onCreate中添加我在onclicklistener之前提供的代码:
3) 如果您什么也不做,请退出活动并返回,它必须停止。如果我启动应用程序,您的意思是什么
;如果我重新启动应用程序,您的意思是什么?如果我启动应用程序,是指当我单击应用程序时,重新启动是指当我退出应用程序并再次单击应用程序时,您的代码处于单击侦听器中,因此应用程序不会发生任何事情启动或重新启动。您必须单击已添加侦听器的按钮。如果我启动应用程序
和重新启动应用程序
,您的意思是什么?如果我启动应用程序是指当我单击应用程序时,重新启动是指当我退出应用程序并再次单击应用程序时,您的代码在单击侦听器中,因此应用程序启动时不会发生任何事情或者重新启动。您必须单击已添加侦听器的按钮。@private432我在代码中向您演示了如何准确地执行该操作。@private432将代码粘贴到onCreate中,看看会发生什么。@private432单击开关并离开,然后返回,它应该保持打开状态。如果我返回应用程序并且开关打开,它应该在控制台上打印正如我在问题中提到的。如果开关关闭,则应在控制台上打印未检查的内容。目前,我的应用程序对这两个选项都不做任何操作。@private432我在代码中向您演示了如何做到这一点。@private432将代码粘贴到onCreate中,看看会发生什么。@private432单击开关并离开,然后返回,它应该保持打开状态。如果我返回应用程序并且开关打开,它应该在我检查的控制台上打印在我的问题中提到。如果开关关闭,则应在控制台上打印未检查的内容。目前我的应用程序对这两个选项都没有任何作用。
//in onCreate:
SharedPreferences prefrences = getSharedPreferences("save", MODE_PRIVATE);
//false mean if not found set to false as default
boolean stateSwitch = prefrences.getBoolean("value",false);
//set state for switch
notificationSwitch.setChecked(stateSwitch);
//log the state
if(stateSwitch == true){
Log.d("TAG","checked");
}else{
Log.d("TAG","not checked");
}