刚刚学习了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 "";

}

更多相关文章

  1. android 创建文件夹失败
  2. 修改文件夹权限
  3. Gradle离线配置、.android、.AndroidStudio、.gradle、.m2缓存文
  4. Android关于SD卡的读写操作及固定图片大小
  5. Android 删除SD卡文件和文件及创建文件夹和文件
  6. Android在SDcard建文件夹(在Android中移动文件必用)
  7. 关于Android初级逻辑思考(续)——android文件夹讲解

随机推荐

  1. Ubuntu下adb在不到Android设备(windows的
  2. Android(安卓)SDK 下载地址
  3. Android开发中WebView与js互相调用
  4. Android中贪吃蛇游戏的学习(四)
  5. android中的两端对齐
  6. Android(安卓)获取通讯录信息
  7. 读取raw文件下文件内容
  8. android BadTokenException之token is no
  9. 2011.08.12(2)——— android MediaPlayer
  10. android-GooglePlay安装来源追踪PlayInst