Android 如何知道是否单击了导航返回?

Android 如何知道是否单击了导航返回?,android,Android,我在我的应用程序中添加了一个首选项屏幕,其中包括反向导航。当我单击导航图标时,它不会保存我在PreferenceScreen中所做的内容。那么,如何处理导航返回单击。您可以简单地覆盖on backpressed @Override public void onBackPressed() { // code here to save the change super.onBackPressed(); // optional depending on your needs }

我在我的应用程序中添加了一个首选项屏幕,其中包括反向导航。当我单击导航图标时,它不会保存我在PreferenceScreen中所做的内容。那么,如何处理导航返回单击。

您可以简单地覆盖
on backpressed

@Override
public void onBackPressed()
{
     // code here to save the change
     super.onBackPressed();  // optional depending on your needs
}
由于PreferenceActivity是Activity的一个子类,它应该遵循相同的生命周期。单击链接,然后导航到间接子类,或者这里是直接子类

编辑


在您的情况下,您使用的是作为MainActivity的父活动,这就是为什么在按下导航键时会重新创建它。从清单中删除该行

           <activity
                android:name=".UserSettingActivity"
                android:label="@string/app_name" 
  (remove this line) android:parentActivityName=".MainActivity" >
            </activity>

尝试在按下活动时覆盖它仅对“后退”按钮有效。我想要的是当返回导航时(您是否在清单中使用
android:parentActivityName
。我的意思是,您是否使用向上导航..例如:as
getActionBar()。setDisplayHomeAsUpEnabled(true)
?我只是一个新手,所以我对android不太了解。在上面的链接中,我上传了我的作品。我想要的是当我单击“后退导航”(而不是“后退菜单”)时,我想根据设置中的更改更改textview的文本。这就是我想要的。提前谢谢。是的,它可以工作。请告诉我为什么它可以工作?这将是一个很大的帮助。在您的情况下,您使用的是作为父活动到MainActivity,这就是为什么您的首选项活动将您的主要活动作为新的意图活动启动,当您按导航返回按钮。这就是重新创建MainActivity(调用其OnCreate()方法)的原因。然后在OnActivityResult中设置数据。这就是文本视图被重置的原因。
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);
    }