Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取onCreate()中开关的状态_Java_Android - Fatal编程技术网

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之前提供的代码:
1) 当您打开开关并离开活动并返回时,它必须保持打开状态

2) 当您关闭并退出活动并返回时,它必须保持关闭状态


3) 如果您什么也不做,请退出活动并返回。活动必须停止。

我将根据标题回答:

要获取onCreate()中开关的状态,请执行以下操作:

更新

  • 保持onclicklistener不变,并在onCreate中添加我在onclicklistener之前提供的代码:
1) 当您打开开关并离开活动并返回时,它必须保持打开状态

2) 当您关闭并退出活动并返回时,它必须保持关闭状态


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");
}