2012-07-27 148 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)