2012-07-27 116 views
0

我需要你的帮助这里.. 我有以下代码:共享偏好不工作

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”,如果我重新启动应用程序。 我做错了什么?

+0

我没有看到调用'mehrPunkte' ...... – MByD 2012-07-27 15:54:01

+0

这就是所谓的onClick-方法:public void onClick(View v){mehrPunkte();} – Stupe 2012-07-27 15:55:23

回答

0

mehrPunkte();onCreate()

+0

看看我上面的评论:方法被调用,比它显示“3”。但是,当我重新启动它再次显示“0” – Stupe 2012-07-27 15:57:43

+0

Binyamin Sharet的答案是你在找什么。 – 2012-07-27 15:59:30

3

getSharedPreferences第一个参数是它的名字,并且将其保存到一个不同的共享偏好,由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)