Android 共享首选项不起作用
我需要你的帮助。。 我有以下代码:Android 共享首选项不起作用,android,sharedpreferences,Android,Sharedpreferences,我需要你的帮助。。 我有以下代码: public class GameActivity extends Activity { TextView test1; String punkte, points; @Override public void onCreate(Bundle savedInstanceState) { test1 = (TextView) findViewById(R.id.test1); punkte = points; SharedPrefer
public class GameActivity extends Activity {
TextView test1;
String punkte, points;
@Override
public void onCreate(Bundle savedInstanceState) {
test1 = (TextView) findViewById(R.id.test1);
punkte = points;
SharedPreferences load = getSharedPreferences(punkte, 0);
points = load.getString("punkte", "0");
test1.setText(points);
}
public void mehrPunkte() {
punkte = "3";
SharedPreferences load = getSharedPreferences(punkte, 0);
points = load.getString("punkte", "0");
test1.setText(points);
SharedPreferences save = getSharedPreferences(punkte, 0);
save.edit().putString("punkte", punkte).commit();
}
但如果我重新启动应用程序,它仍然显示“0”。
我做错了什么?PutmehrPunkte()代码>在onCreate()
PutmehrPunkte()代码>在onCreate()
中,的第一个参数是它的名称,您可以将它保存到不同的共享首选项中,由punkte
变量的值指示。请尝试以下方法:
final private static String SHARED_PREF_ID = "My shared preferences";
@Override
public void onCreate(Bundle savedInstanceState) {
// ...
SharedPreferences load = getSharedPreferences(SHARED_PREF_ID, MODE_PRIVATE);
// ...
}
public void mehrPunkte() {
punkte = "3";
SharedPreferences load = getSharedPreferences(SHARED_PREF_ID, MODE_PRIVATE);
points = load.getString("punkte", "0");
test1.setText(points);
SharedPreferences save = getSharedPreferences(SHARED_PREF_ID, MODE_PRIVATE);
save.edit().putString("punkte", punkte).commit();
}
另外,使用常量来表示模式,而不是整数文字(mode_PRIVATE,而不是0)的第一个参数是它的名称,您可以将它保存到另一个共享首选项中,由punkte
变量的值表示。请尝试以下方法:
final private static String SHARED_PREF_ID = "My shared preferences";
@Override
public void onCreate(Bundle savedInstanceState) {
// ...
SharedPreferences load = getSharedPreferences(SHARED_PREF_ID, MODE_PRIVATE);
// ...
}
public void mehrPunkte() {
punkte = "3";
SharedPreferences load = getSharedPreferences(SHARED_PREF_ID, MODE_PRIVATE);
points = load.getString("punkte", "0");
test1.setText(points);
SharedPreferences save = getSharedPreferences(SHARED_PREF_ID, MODE_PRIVATE);
save.edit().putString("punkte", punkte).commit();
}
另外,使用常量来表示模式,而不是整数文本(mode_PRIVATE,不是0)我看不到对mehrPunkte
的调用……它是在onClick方法中调用的:public void onClick(View v){mehrPunkte();}。我看不到对mehrPunkte
的调用……它是在onClick方法中调用的:public void onClick(View v){mehrPunkte()}看看我上面的评论:方法被调用,然后显示“3”。但当我重新启动时,它再次显示“0”Inbinyamin Sharet的答案正是您要寻找的。请看我上面的评论:该方法被调用,然后显示“3”。但当我重新启动时,它再次显示“0”Inbinyamin Sharet的答案正是您想要的。