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

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

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

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

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

   

      

                     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"/>

                           

   

   

      

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

                     android:key="change_channel">

      

   

     

      

                     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"/>

   

   

   

      

         android:key="edittext_preference_name"

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

                         android:dialogTitle="@string/dialog_input_title">

         android:key="edittext_preference_email"

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

                         android:dialogTitle="@string/dialog_input_title">

         android:key="edittext_preference_phone"

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

                         android:dialogTitle="@string/dialog_input_title">                        

             

      

          

 

类的实现

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有不同的格式,如EditTextPreferenceListPreferenceCheckBoxPreference等类型

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

public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,

           String key) {

}

 

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

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

              {

                  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的支持库 && app/apk包进系统 && 预置so库进系统 && 预置
  2. Android(java)学习笔记135:Android中assets文件夹资源的访问
  3. 31、android打开文件夹并列出里面的文件
  4. 《Android学习指南》文件夹
  5. android 获取文件夹、文件的大小 以B、KB、MB、GB 为单位
  6. Android设备与外接U盘实现数据文件夹拷贝到android设备
  7. Android 文件及文件夹操作
  8. android 工程中重新生成gen文件夹或R.java 文件
  9. Android创建隐藏文件或者文件夹

随机推荐

  1. Android(安卓)任务栈简介
  2. Android学习资源大全
  3. web网页和ios、android进行交互
  4. Android共享全局数据
  5. Android(安卓)AlertDialog 对话框开启和
  6. Android(安卓)Native程序crash的一些定位
  7. popupwindow练习
  8. android 固定大小取图片缩略图
  9. Android菜单设计指南
  10. Android(安卓)使用ORMLite操作数据库