Android学习笔记之Shared Preference
本文导语: 如果没有特殊要求,我们可以使用Android提供的框架来创建系统样式的Preference Screen,在其内部可以包含PreferenceCategory和Preference元素的任意组合。建立Preference Screen,需要向里面添加首选项控件,原生的这些控件有:CheckBoxPr...
如果没有特殊要求,我们可以使用Android提供的框架来创建系统样式的Preference Screen,在其内部可以包含PreferenceCategory和Preference元素的任意组合。建立Preference Screen,需要向里面添加首选项控件,原生的这些控件有:CheckBoxPreference、EditTextPreference、ListPreference、MultiSelectListPreference和RingtonePreference,每种控件至少包含4种属性:android:key,android:title,android:summary,android:defaultValue,用一种图来对其进行说明:
创建Preference有两种方法,第一种是使用PreferencesActivity。首先在res/values下创建一个arrays.xml用于存放ListPreference的数据
Every Minute
5 minutes
10 minutes
15 minutes
Every Hour
1
3
5
6
7
8
1
3
5
6
7
8
1
5
10
15
60
然后在res/xml下创建userpreferences.xml,用于定义PreferenceScreen
最后在MainActivity中重写onCreate方法,这个MainActivity要继承PreferenceActivity,使用addPreferencesFromResource添加PreferenceScreen
public class MainActivity extends PreferenceActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.userpreferences);
}
}
OK,搞定,效果如图
第二种方法是使用PreferenceFragment,首先创建UsePreferenceFragment类继承PreferenceFragment类,重写onCreate方法,使用addPreferencesFromResource来加载userpreferences.xml
public class UserPreferenceFragment extends PreferenceFragment
{
@Override
public void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.userpreferences);
}
}
然后在res/xml下创建preference_headers.xml,来关联UsePreferenceFragment
最后在MainActivity中重写onBuildHeaders方法
public class MainActivity extends PreferenceActivity
{
@Override
public void onBuildHeaders(List target)
{
// TODO Auto-generated method stub
loadHeadersFromResource(R.xml.preference_headers, target);
}
}
搞定,效果如图: 然后点击Settings就会进入下个界面