从PreferenceScreen内部打开片段

时间:2015-11-24 23:10:30

标签: android android-fragments android-preferences

抱歉,如果这是一个愚蠢的问题。

所以,我已经有了一个定义我的首选项的settings.xml,并且在树的某个点上我有:

<PreferenceScreen [...] android:fragment="path.to.fragment" [...] />

当我点击那件事时,我会去看我的片段。 那是在工作。

我的片段是ListFragment,因为我在此屏幕上显示蓝牙设备列表,并且无法静态声明它们。

我的问题是,当用户点击我ListFragment中的某个列表项时,我想打开详细信息屏幕,他们可以在该屏幕上设置所选设备的偏好设置,但我无法确定如何以编程方式创建和启动下一个片段,同时仍然保留优先级提供的漂亮树中的内容。

现在我只是创建一个活动,以便我可以超越问题的这一部分,但在完成之前我必须弄清楚。

有一种简单的方法可以做到这一点,还是我完全采取了错误的方法?

谢谢!

编辑:图片

help picture

因此,第1页是我的设置片段,它是使用XML构建的,突出显示的选项是使用PreferenceScreen生成的。

第2页是我的listFragment,因为这些项目来自蓝牙,它不能只是另一个设置xml条目。

第3页是我选择一个选项(WIP)时得到的结果。为了达到这一点,我必须将其作为一项活动并使用startActivity,但其他两个是碎片。我问是否有一种方法可以以编程方式执行PreferenceScreen选项在xml中执行的相同操作,并启动一个片段,并保留顶部栏和内容。

1 个答案:

答案 0 :(得分:2)

好的,这就是我所拥有的。

我意识到在顶级我有一个PreferenceActivity,它的方法是startPreferenceFragment

所以,我这样做:

((PreferenceActivity) getActivity()).startPreferenceFragment(new MyFragment(), true);

哪个适合我。

它并不像一个坚实的解决方案,但它具有我想要的效果,我必须继续前进。