Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.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 设置SharedReferences以保存Switch语句大小写_Java_Android_Sharedpreferences - Fatal编程技术网

Java 设置SharedReferences以保存Switch语句大小写

Java 设置SharedReferences以保存Switch语句大小写,java,android,sharedpreferences,Java,Android,Sharedpreferences,我真的很困惑如何保存我的Switch语句,所以当游戏重新打开按钮显示为save时,我会对SharedReference进行如下编码 f1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v){ // TODO Auto-generated method stub

我真的很困惑如何保存我的Switch语句,所以当游戏重新打开按钮显示为save时,我会对SharedReference进行如下编码

f1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v){
                    // TODO Auto-generated method stub
                    Intent level1 = new Intent ();
                    level1.setClassName ("com.example.game", "com.example.game.levelone");
                    startActivityForResult (level1, 0);              
                }             
            });     
        }   

    public void onActivityResult (int requestCode, int resultCode, Intent level1){
    super.onActivityResult (requestCode, resultCode, level1); 

        f2=(Button)findViewById(R.id.f2);      
        f2lock=(ImageView)findViewById(R.id.f2lock);
        SharedPreferences resultcode = getSharedPreferences("preferences", MODE_PRIVATE);
        SharedPreferences.Editor editor = resultCode.edit(); 
        editor.putBoolean("IsFinished", true);
        editor.commit();

    boolean resultcode = preferences.getBoolean("IsFinished", true);


        switch (resultCode) {
        case 2:  f2.setVisibility(View.VISIBLE);
                 f2lock.setVisibility(View.GONE);            
        }      
在不同的行上有一个错误

SharedReferences.Editor=resultCode.edit()中的第一个

我发现这个错误,无法对基元类型int调用edit()

其次,
boolean resultcode=preferences.getBoolean(“IsFinished”,true)

我犯了两个这样的错误

f1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v){
                    // TODO Auto-generated method stub
                    Intent level1 = new Intent ();
                    level1.setClassName ("com.example.game", "com.example.game.levelone");
                    startActivityForResult (level1, 0);              
                }             
            });     
        }   

    public void onActivityResult (int requestCode, int resultCode, Intent level1){
    super.onActivityResult (requestCode, resultCode, level1); 

        f2=(Button)findViewById(R.id.f2);      
        f2lock=(ImageView)findViewById(R.id.f2lock);
        SharedPreferences resultcode = getSharedPreferences("preferences", MODE_PRIVATE);
        SharedPreferences.Editor editor = resultCode.edit(); 
        editor.putBoolean("IsFinished", true);
        editor.commit();

    boolean resultcode = preferences.getBoolean("IsFinished", true);


        switch (resultCode) {
        case 2:  f2.setVisibility(View.VISIBLE);
                 f2lock.setVisibility(View.GONE);            
        }      
无法解析首选项并复制局部变量

有人能帮我修复代码或提供另一个解决方案代码来保存Switch语句吗?

错误号:1 您的代码中有一个输入错误。请注意
resultCode.edit()中的C

替换

    SharedPreferences resultcode = getSharedPreferences("preferences", MODE_PRIVATE);
    SharedPreferences.Editor editor = resultCode.edit(); 

实际上,在您的代码中,它是
resultcode
,这是
SharedReference
,但是您在
resultcode
上调用了
edit()

错误:2 我认为您正在尝试获取存储在SharedReference中的布尔值。因此,你所做的是错误的

应按如下方式进行

boolean result = resultcode.getBoolean("IsFinished", true);
实际上,
resultcode
是指Java类中的
SharedReference
,而不是
首选项<代码>首选项
只是为保存在本地设备中的xml文件指定的名称


有关SharedReference的更多详细信息,请查看。正如Lal所说,您有一个打字错误。就我个人而言,我更喜欢一行
SharedReferences
,其中键
String
作为类顶部的
私有静态字符串

下面的代码源于


使用此代码,可以最大限度地减少打字错误。除了代码输入错误外,键中的输入错误将确保您的首选项永远不会正确保存/检索,这就是为什么我“提倡”使用
静态字符串的原因。您还将从我的链接中注意到,我的所有首选项都由一个类管理,这意味着我不必在其他类中重复代码来检索/存储特定的首选项。一般来说,代码越少=出错的可能性越小

而且,它是
SharedReferences
instance@Lal哦,好的,我明白了,“首选项”是在本地设备中保存数据的名称?或者“首选项”是正在使用的当前xml的名称?它是本地保存以保存数据的xml文件的名称@(太好了……)很高兴它帮助了兄弟……)那么,我是需要使用布尔结果,还是只需要上面代码中的4行SharedReference来保存数据?
private static final String KEY_ISFINISHED = "prefs_isfinished";

PreferenceManager.getDefaultSharedPreferences(context)
                .edit().putBoolean(KEY_ISFINISHED, myboolean).commit();