这两天为了完善App的功能学习了一下Preference制作一个设置界面,记录一下。
创建布局
首先res里创建一个xml文件夹,然后新建xml文件建议名称为"perf_xxx"
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:key="setting"
android:title="用户设置" />
<EditTextPreference
android:defaultValue="1"
android:inputType="number"
android:key="vip"
android:summary="10元/月"
android:title="开通会员" />
</PreferenceScreen>
PreferenceCategory是一个小标题
EditTextPreference就是里面的控件,可以操作的项
加载界面
- 版本低于Android 3.0(API 10)
新建一个Activity继承PreferenceActivity
public class Activity extends PreferenceActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.perf_setting);
}
}
- 版本高于Android 3.0(API 10)
就要使用了PreferenceFragment
新建一个class继承PreferenceFragment
然后里面加载xml
class Setting extends PreferenceFragment
{
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.addPreferencesFromResource(R.xml.perf_setting);
}
}
接着在Activity里加载Fragment
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getFragmentManager().beginTransaction()
.replace(android.R.id.content, new Setting())
.commit();
}
至于这个android.R.id.content,直接写上去就行,我也很懵到底什么意思,网上查了也没有结果。