我编写了一个应用程序,不断删除我的共同偏好。我一直认为,当您使用 SharedPreferences 时,它们会一直存在,直到您卸载应用程序或以编程方式清除首选项(我可能是错的)。发生的事情是我在一个文件中有一个 sharedpreference 的字符串值。然后在单独的文件中调用该值,该文件运行 if 语句并将图像视图设置为特定图形(如果已存储该变量)。它似乎运行良好,一切正常,直到我关闭应用程序并在手机设置中杀死它或使用“高级任务杀手”应用程序。我以相同的方式使用共享首选项对其他应用程序进行了编程(不使用 if 语句),我似乎没有这个问题,所以这让我觉得 if 语句有问题。从逻辑上讲,我无法弄清楚出了什么问题。任何帮助深表感谢。文件一代码:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.guessaquaman);
final Button guessbutton = (Button) findViewById(R.id.guess_button);
guessbutton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
guess=(EditText)findViewById(R.id.guess_edittext);
String myguess = guess.getText().toString();
String correctanswer = "aquaman";
if( myguess.equals( correctanswer ) ){
Toast.makeText(getApplicationContext(), "Correct", Toast.LENGTH_SHORT).show();
SharedPreferences sharedPreferences = getSharedPreferences("MY_SHARED_PREF", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("aquamanticked", "on");
editor.commit();
Intent myintent1 = new Intent(AquamanGuess.this,PlayActivity.class);
startActivity(myintent1);
guessbutton.setEnabled(false);
}
}
});
第二个文件:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.play);
SharedPreferences sharedPreferences = getSharedPreferences("MY_SHARED_PREF", MODE_PRIVATE);
String aquamanticker = sharedPreferences.getString("aquamanticked", "");
String aman= "on";
ImageView aquaman = (ImageView) findViewById(R.id.aquaman);
aquaman.setImageResource(R.drawable.aquaman_small_empty);
if (aquamanticker == aman ){
aquaman.setImageResource(R.drawable.aquaman_small_filled); }