[英]How to load the same screen preference in the detail PreferenceFragment
I am trying to do something like the settings preferences in android for tablet. 我正在尝试做类似Android平板电脑中的设置首选项。
When I click the "More" the the "Wireless & Networks" preferences screen is displayed on the right fragment, than if I touch the "VPN" , in the same fragment the "VPN" preferences screen is opened. 当我单击“更多”时,右侧片段上显示“无线和网络”首选项屏幕,而如果我触摸“VPN”,则在同一片段中打开“VPN”首选项屏幕。
How can I do that ? 我怎样才能做到这一点 ?
this is my preference xml 这是我的偏好xml
<PreferenceScreen android:title="Title A">
<PreferenceScreen android:title="TITLE B">
<PreferenceCategory
android:title="category">
<ListPreference android:key="list"
android:title="list" android:entries="@array/list_vals"
android:entryValues="@array/list_vals1"
android:defaultValue="1" android:dialogTitle="list title"
android:negativeButtonText="cancel" />
</PreferenceCategory>
</PreferenceScreen>
</PreferenceScreen>
The problem is I do not want the nested preference screen with title B to be loaded on the whole screen I just want to be loaded in the place of the right fragment... 问题是我不希望在整个屏幕上加载带有标题B的嵌套首选项屏幕我只想加载到正确的片段...
NOTE: that I used this documentation to create my example so far http://developer.android.com/guide/topics/ui/settings.html#PreferenceHeaders 注意:到目前为止,我使用此文档创建了我的示例http://developer.android.com/guide/topics/ui/settings.html#PreferenceHeaders
EDIT* 编辑*
this is my activity 这是我的活动
public class SettingsActivity extends PreferenceActivity {
@Override
public void onBuildHeaders(List<Header> target) {
loadHeadersFromResource(R.xml.preference_headers, target);
}
}
I do not have an layout, so how can I know what is my master fragment id and what is my detail fragment id ? 我没有布局,所以我怎么知道我的主片段ID是什么,我的细节片段ID是什么?
Short example, define a PreferenceActivity
, and provide a headers file for main categories: 简短示例,定义
PreferenceActivity
,并为主要类别提供头文件:
Class SettingsActivity
: 类
SettingsActivity
:
public class SettingsActivity extends PreferenceActivity {
@Override
public void onBuildHeaders(List<Header> target) {
super.onBuildHeaders(target);
loadHeadersFromResource(R.xml.headers,target);
}
}
File /res/xml/headers.xml
: 文件
/res/xml/headers.xml
:
<?xml version="1.0" encoding="utf-8"?>
<preference-headers xmlns:android="http://schemas.android.com/apk/res/android">
<header android:title="Preference Header"
android:fragment="com.example.SettingsDemo.PrefFragment"/>
</preference-headers>
Create a PreferenceFragment
as referenced in android:fragment
above, provide its own preferences file: 创建一个在上面的
android:fragment
引用的PreferenceFragment
,提供自己的首选项文件:
class PrefFragment
: class
PrefFragment
:
public class PrefFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);
}
}
File /res/xml/prefs.xml
: 文件
/res/xml/prefs.xml
:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="Preferences">
<SwitchPreference android:title="Preference" />
<PreferenceScreen android:title="Sub Preferences"
android:fragment="com.example.SettingsDemo.SubPrefFragment"/>
</PreferenceCategory>
</PreferenceScreen>
Create a child PreferenceFragment
as referenced in android:fragment
above, provide its own preferences file too: 在上面的
android:fragment
引用创建一个子PreferenceFragment
,也提供自己的首选项文件:
Class SubPrefFragment
: SubPrefFragment
类:
public class SubPrefFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.sub_prefs);
}
}
File /res/xml/sub_prefs.xml
: 文件
/res/xml/sub_prefs.xml
:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="Sub Preferences">
<CheckBoxPreference android:title="Sub Preference"/>
</PreferenceCategory>
</PreferenceScreen>
That's it. 而已。 The
PreferenceActivity
will automatically show all the child fragments. PreferenceActivity
将自动显示所有子片段。
Results: 结果:
Main PreferenceFragment
: 主要
PreferenceFragment
:
Replaced by sub PreferenceFragment
, under same header: 替换为子
PreferenceFragment
,在相同的标题下:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.