我对Android非常陌生,在SharedPreferences方面也有问题。我有一个主活动和一个设置活动。我希望能够在设置活动中更改SharedPreference (这里称为firstWaitTime),并在主活动中使用它。我可以在设置中设置新值,但在主活动中,我只在关闭并重新打开应用程序时才看到新值。
我想我需要一个OnPrefrenceChanged列表器,但我不知道如何实现.
主要的一个是这样的:
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();
}
});
}
实现这一目标的最佳途径是什么?
发布于 2015-09-21 19:27:39
onCreate()不会被调用,因为安卓并没有扼杀这一活动。尝试将您的代码放在onResume()中。欲知更多信息,请阅读Android活动生命周期。
https://stackoverflow.com/questions/32702981
复制相似问题