我对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