我在我的应用程序中添加了一个包含后退导航的PreferenceScreen。当我单击导航图标时,它不会保存我在PreferenceScreen中创建的内容。那么,我该如何处理导航返回点击。
答案 0 :(得分:2)
您可以简单地覆盖onBackPressed
...
@Override
public void onBackPressed()
{
// code here to save the change
super.onBackPressed(); // optional depending on your needs
}
由于PreferenceActivity是Activity的子类,因此它应该遵循相同的生命周期。单击链接,然后导航到间接子类,或者这是直接http://developer.android.com/reference/android/preference/PreferenceActivity.html
<强>编辑强>
在您的情况下,您使用的是MainActivity的父活动,这就是当您按下导航时重新创建它的原因。从清单中删除该行。
<activity
android:name=".UserSettingActivity"
android:label="@string/app_name"
(remove this line) android:parentActivityName=".MainActivity" >
</activity>
并将您的设置活动代码更改为..
public class UserSettingActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.user_settings);
getActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case android.R.id.home:
Log.e("onOptionsItemSelected", "home");
finish();
return false;
}
return super.onOptionsItemSelected(item);
}