2013-09-30 95 views
0

我的共享首選項有問題,它不起作用。Sharedpreference不保存

我一直在努力,現在很長時間了,我很沮喪,爲什麼這不起作用。

我試圖把加載方法放在Oncreate中,並且在Onresume方法中,它們都沒有工作。

我要救我的:

布爾值= stopValue,這應該是假的,我第一次使用的應用程序,並在未來它,應該從哪些已保存最後加載。當我在另一個類中使用按鈕時,布爾值發生變化,因此我有getIntent()。getBooleanExtra();

字符串,稱爲日期。

一個Int,啓動壓力計。

這些是要存儲的數據。

謝謝你的時間。

但這裏是我爲我的主類代碼:

public class Main extends Activity{ 

Button bStart, bStop; 
TextView tvView; 
Spinner spinner1; 
boolean stopValue; 
int startkilometer; 
String date; 
SharedPreferences prefs; 



@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    bStart = (Button) findViewById(R.id.bStart); 
    tvView = (TextView) findViewById(R.id.tvView); 
    spinner1 = (Spinner) findViewById(R.id.spinner1); 







    date = getIntent().getStringExtra("datoen"); 
    startkilometer = getIntent().getIntExtra("startkm", startkilometer); 
    stopValue = getIntent().getBooleanExtra("stopper", stopValue); 


    if(stopValue == false){ 
     bStart.setText("Start"); 
     bStart.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       Intent start = new Intent("com.uniqueapps.runner.START"); 
       startActivity(start); 
      } 
     }); 
    } 

    if(stopValue){ 
     bStart.setText("Stop"); 
     bStart.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       Intent stop = new Intent("com.uniqueapps.runner.STOP"); 
       stop.putExtra("startkm", startkilometer); 
       stop.putExtra("datoen", date); 
       startActivity(stop); 
      } 
     }); 
    } 

    KilometerSQL info = new KilometerSQL(this); 
    info.open(); 
    String data = info.getData(); 
    info.close(); 
    tvView.setText(data); 

    } 




@Override 
protected void onResume() { 
    // TODO Auto-generated method stub 

super.onResume();  

prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 

prefs.getBoolean("stopper", false); 
prefs.getInt("startkm", startkilometer); 
prefs.getString("datoen", date); 

} 

@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 

    Editor edit = prefs.edit(); 
    edit.putBoolean("stopper", stopValue); 
    edit.putInt("startkm", startkilometer); 
    edit.putString("datoen", date); 
    edit.commit(); 

    super.onPause(); 
} 
+0

我不明白什麼[Rü試圖做什麼 – hasan83

+0

我可以向你保證這不是你如何閱讀和對上sharedprefs。這是在應用程序邏輯中的東西。 – hasan83

+0

即時通訊設法保存3個值,但它不起作用..它不會保存.. – Niller

回答

1

嘗試初始化變量首選項中的每一個方法:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
Editor edit = prefs.edit(); 
    edit.putBoolean("stopper", stopValue); 
    edit.putInt("startkm", startkilometer); 
    edit.putString("datoen", date); 
    edit.commit(); 

以下行是沒用的。沒有采取值。你如何看待價值觀?

prefs.getBoolean("stopper", false); 
prefs.getInt("startkm", startkilometer); 
prefs.getString("datoen", date); 
+0

它不起作用..;) – Niller

+0

誰幫我這個告訴我用它來加載的東西。我之前在另一個問題中問過,因爲我又犯了一個錯誤,他讓我以我不明白的方式重寫我的所有代碼,所以我閉上眼睛,遵循他的命令。我的「加載」方法不正確嗎? – Niller

0

嘗試這樣的:

PreferenceManager.getDefaultSharedPreferences(this) 
.edit() 
.putBoolean("stopper", stopValue) 
.putInt(etc) 
.commit() 
相關問題