如何知道是否点击导航返回?

时间:2015-10-06 09:37:56

标签: android

我在我的应用程序中添加了一个包含后退导航的PreferenceScreen。当我单击导航图标时,它不会保存我在PreferenceScreen中创建的内容。那么,我该如何处理导航返回点击。

1 个答案:

答案 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);
    }