我真的很困惑保存我的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语句吗?
答案 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
的原因。您还会从我的链接中注意到,我的所有首选项都由一个类管理,这意味着我不必在其他类中重复代码来检索/存储特定的首选项。一般来说,代码较少==错误的机会较少。