刚刚学习了android中preferenceActivity的使用,下面贴出自己的程序代码片段,希望对大家有用。呵呵,也是刚刚开 始研究每多久,希望能和大家多多交流。

android通过配置文件自动生成PreferenceActivity界面

在res文件夹下创建xml/setting_preferences.xml文件,然后创建类继承PreferenceActivity就可以了

<?xml version="1.0" encoding="utf-8"?>

<PreferenceScreen

xmlns:android="http://schemas.android.com/apk/res/android">

<PreferenceCategory android:title="@string/inner_picture">

<ListPreference android:key="listpreference_picsize"

android:title="@string/inner_picture"

android:summary="@string/inner_picture_summary"

android:entries="@array/pic_size_list"

android:entryValues="@array/pic_sizevalue_list"

android:dialogTitle="@string/dialog_title"/>

</PreferenceCategory>

<PreferenceCategory android:title="@string/channel_change">

<PreferenceScreen android:title="@string/select_change"

android:summary="热门频道为:即 时新闻 要闻 国际"

android:key="change_channel">

</PreferenceScreen>

</PreferenceCategory>

<PreferenceCategory android:title="@string/font_size">

<ListPreference android:key="listpreference_fontsize"

android:title="@string/font_size"

android:summary="@string/font_size_summary"

android:entries="@array/font_size_list"

android:entryValues="@array/font_sizevalue_list"

android:dialogTitle="@string/dialog_title"/>

</PreferenceCategory>

<PreferenceCategory android:title="@string/user_message" >

<PreferenceScreen android:title="錄入用戶個人資料">

<EditTextPreference android:key="edittext_preference_name"

android:summary="請輸入您的姓 名"

android:dialogTitle="@string/dialog_input_title"></EditTextPreference>

<EditTextPreference android:key="edittext_preference_email"

android:summary="請輸入您的郵 件地址"

android:dialogTitle="@string/dialog_input_title"></EditTextPreference>

<EditTextPreference android:key="edittext_preference_phone"

android:summary="請輸入您的電 話號碼"

android:dialogTitle="@string/dialog_input_title"></EditTextPreference>

</PreferenceScreen>

</PreferenceCategory>

</PreferenceScreen>

类的实现

public class SettingPreferenceActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener {

private static final String KEY_FOR_CHANNEL_CHANGE_PREFERENCE="change_channel";

@Override

public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,

Preference preference) {

if(preference.getKey()!=null&&preference.getKey().equals(KEY_FOR_CHANNEL_CHANGE_PREFERENCE)){

Intent intent = new Intent(this,ChannelSelectActivity.class);

startActivity(intent);//点击 PreferenceScreen 跳转至其它Activity

}

return super.onPreferenceTreeClick(preferenceScreen, preference);

}

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

addPreferencesFromResource(R.xml.seting_preferences);

// requestWindowFeature(Window.FEATURE_NO_TITLE);

}

}

preference有不同的格式,如EditTextPreference、ListPreference、 CheckBoxPreference等类型

当选择或是输入不同的值时,他们的值会自动保存到sharedpreferences中,当值发生改变的时候会触发

public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,

String key) {

}

可以通过各个preference的key来得到对象,从而得到所选中的值

ListPreference listPreferencePicsizes= (ListPreference)findPreference("listpreference_picsize");//內嵌圖片大小設置

listPreferencePicsizes.setSummary("当前图片大小 为:"+getText(listPreferencePicsizes));

String getText(Preference p)

{

String value;

try

{

if (p instanceof ListPreference)

{

value = ((ListPreference) p).getValue();

CharSequence[] entries = ((ListPreference) p).getEntries();

CharSequence[] entryValues = ((ListPreference) p).getEntryValues();

for (int i = 0;i<entryValues.length;i++)

{

if (value.equals( (String)entryValues[i]))

return (String)entries[i];

}

}

else if (p instanceof EditTextPreference)

{

return ((EditTextPreference) p).getText();

}

}

catch(Exception e)

{

return "";

}

return "";

}

ps:From.. http://elena-java.javaeye.com/blog/643449

mark here, leans later

更多相关文章

  1. Android访问中央气象台的天气预报API得到天气数据
  2. android 创建系统变量
  3. Android入门教程3【Hello Android!】
  4. 搭建Android开发环境与开发工具选择
  5. Android开发中的logcat工具使用
  6. android Notification 的使用
  7. android的数据存储和访问 附源码
  8. android快速上手(二)android开发环境搭建及hello world
  9. Android给view或者布局添加水波纹点击效果

随机推荐

  1. Android(安卓)EditText各种属性及作用
  2. Android应用开发——系统自带样式Android
  3. Android开发_TextView跑马灯
  4. Android:Material Design(四) UI控件
  5. 命令行操作android工程
  6. Android(安卓)layout属性大全
  7. Android自带的theme
  8. Android图片旋转
  9. Android(安卓)layout属性大全
  10. Android应用开发——系统自带样式Android