我正在开发一个Android应用程序.如果我按下后退按钮应该保存我的应用程序的状态.我应该用什么来保存状态..am与所有这些onPause(),onResume()或onRestoresavedInstance()混淆???我应该使用哪些来保存我的应用程序状态?例如,当我按退出按钮时,我的整个应用程序应该退出我已经使用了finish()?
public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); s1=(button)findVIEwByID(R.ID.sn1); s1.setonClickListener(this); LoadPreferences(); s1.setEnabled(false); } public voID SavePreferences() { SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putBoolean("state", s1.isEnabled()); } public voID LoadPreferences() { System.out.println("LoadPrefe"); SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); Boolean state = sharedPreferences.getBoolean("state", false); s1.setEnabled(state); } @OverrIDe public voID onBackpressed() { System.out.println("backbutton"); SavePreferences(); super.onBackpressed(); }
解决方法:
您需要做的是,而不是使用KeyCode Back,您已在Activity中覆盖以下方法,
@OverrIDepublic voID onBackpressed() { super.onBackpressed();}
并使用SharedPrefrence保存button的状态,下次当您输入Activity时,从Sharedpreference获取值并相应地设置按钮的启用状态.
例,
private voID SavePreferences(){ SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putBoolean("state", button.isEnabled()); editor.commit(); // I missed to save the data to preference here,. } private voID LoadPreferences(){ SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); Boolean state = sharedPreferences.getBoolean("state", false); button.setEnabled(state); } @OverrIDepublic voID onBackpressed() { SavePreferences(); super.onBackpressed();}onCreate(Bundle savedInstanceState){ //just a rough sketch of where you should load the data LoadPreferences();}
总结 以上是内存溢出为你收集整理的android – 按下后退按钮时保存状态全部内容,希望文章能够帮你解决android – 按下后退按钮时保存状态所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)