我對Android Prorgramming很陌生,並且對SharedPreferences有個問題。 我有一個主要活動和一個設置活動。 我希望能夠在設置活動中更改SharedPreference(這裏稱爲firstWaitTime),並在主活動中使用它。 我可以在設置中設置新值,但在主活動中,當我關閉並重新打開應用程序時,我只能看到新值。重新加載SharedPreferences
我想我會需要一個OnPrefrenceChanged Listender,但我不知道如何實現它?
主要的一個是這樣的:
public class MainActivity extends ActionBarActivity {
//Radio Button
private int stufe;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SharedPreferences settings = this.getSharedPreferences("settings", Context.MODE_PRIVATE);
int firstWaitTime = settings.getInt("firstWaitTime", 12);
int secondWaitTime = settings.getInt("secondWaitTime", 8);
int thirdWaitTime = settings.getInt("thirdWaitTime", 6);
//TEST
final TextView test = (TextView) findViewById(R.id.test);
test.setText("" + firstWaitTime);
}
設置活動如下所示:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
final SharedPreferences settings = this.getSharedPreferences("settings", MODE_PRIVATE);
//BUTTON
final EditText edit1 = (EditText) findViewById(R.id.edit1);
Button save=(Button) findViewById(R.id.savebtn);
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//prefs = getSharedPreferences(prefName, MODE_PRIVATE);
//SharedPreferences.Editor editor = prefs.edit();
SharedPreferences.Editor editor = settings.edit();
//---save the values in the EditText view to preferences---
editor.putInt("firstWaitTime", Integer.parseInt(edit1.getText().toString()));
//---saves the values---
editor.commit();
Toast.makeText(getBaseContext(), "Saved", Toast.LENGTH_SHORT).show();
}
});
}
什麼是實現這一目標的最佳途徑?
活動的'onResume'再次獲得共享首選項值 – tyczj