设置SharedPreferences以保存Switch Statement Case

时间:2015-08-14 17:25:10

标签: java android sharedpreferences

我真的很困惑保存我的Switch语句所以当游戏重新打开按钮时,VISIBLE就是Save,所以我用SharedPreferences这样编码

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

不同行上有错误

首先在SharedPreferences.Editor editor = resultCode.edit();

我收到此错误无法在基本类型int上调用edit()

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

我有两个这样的错误

首选项无法解析重复的本地变量

任何人都可以帮我修改代码或提供另一个解决方案代码来保存Switch语句吗?

1 个答案:

答案 0 :(得分:0)

正如拉尔所说,你有一个错字。就个人而言,我更喜欢单行SharedPreferences,其中String项为private static String,位于班级的顶部。

以下代码源自one of my projects

private static final String KEY_ISFINISHED = "prefs_isfinished";

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

使用此代码可以最大限度地减少拼写错误。除了代码拼写错误之外,密钥中的拼写错误将确保您的首选项永远不会被正确保存/检索,这就是我“提倡”使用static String的原因。您还会从我的链接中注意到,我的所有首选项都由一个类管理,这意味着我不必在其他类中重复代码来检索/存储特定的首选项。一般来说,代码较少==错误的机会较少。