以编程方式关闭 PreferenceScreen 及其 PreferenceActivity

Programatically close PreferenceScreen and its PreferenceActivity

情况如下:

  1. 从我的 MainActivity 打开我的应用程序的 PreferenceActivity
  2. PreferenceActivity 中我有两个 PreferenceScreens 和一个 MenuItem 带有一个图标来启动另一个 Activity 作为结果。如果我输入任何 PreferenceScreens,图标仍然可见,所以我也可以从我所在的当前 PreferenceScreen 开始新的 Activity

  3. 案例 1。如果我直接从 PreferenceActivity 启动新的 Activity 而没有进入它的任何 child 屏幕,它 完成它的工作,returns 结果,我回到 parent PreferenceActivity。我确定我是否在 PreferenceActivity 并调用 finish() 方法和 return 到我的 MainActivity- 完成!

  4. 案例2.我输入一个childPreferenceScreen,按MenuItem图标,启动新的Activity ,它完成了它的工作,return 给我一个结果,我回到了 child 屏幕。我确定我是否在 PreferenceScreen 中并调用 finish()。 child 屏幕已关闭,但与 案例 1 不同,我回到了我的 parent PreferenceActivity。如何关闭 parent 和 return 到我的 MainActivity

You may finish ParentActivity then start Child Activity, now then you finish your child you will go back to main activity

或者

您可以在清单元数据中使用

 <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="com.in.class" />

我想通了....我的 PreferenceActivity 有两个 PreferenceScreens。所以要打开其中的任何一个,我使用 screenPreference.setOnPreferenceClickListener()。在那个听众中,我只是调用 PreferenceActivity.this.finish()。父对象关闭,子对象打开。已经在 PreferenceScreen 子级中,我在 情况 2 中,所以当我调用 PreferenceActivity.finish() 时,子级屏幕关闭,父级也和我直接导航到我的MainActivity。 :)