当前位置: 代码迷 >> Android >> android之经过java代码实现PreferenceActivity
  详细解决方案

android之经过java代码实现PreferenceActivity

热度:98   发布时间:2016-05-01 11:36:05.0
android之通过java代码实现PreferenceActivity

PreferenceActivity综述

设置界面是很多软件用来配置用户偏好的图形化界面与之对应的是SharePreference。以下代码可以调用系统的PreferenceActivity,设置界面还可以通过自己做的布局来设置SharePreference或者通过自定义Preference来实现。

因为PreferenceActivity是Activity的子类,所以PreferenceActivity必须在AndroidManifest.xml文件注册。

public class Preferencetest extends PreferenceActivity {	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setPreferenceScreen(createPreferenceHierarchy());	}	private PreferenceScreen createPreferenceHierarchy() {		//用来创建Preference        PreferenceManager preferenceManager = getPreferenceManager();        preferenceManager                .setSharedPreferencesName(Constants.SHARED_PREFERENCE_NAME);        //设置SharedPreferences的存储模式        preferenceManager.setSharedPreferencesMode(Context.MODE_PRIVATE);        //Preference的根节点        PreferenceScreen root = preferenceManager.createPreferenceScreen(this);        /*         * 设置复选框         */        CheckBoxPreference soundPref = new CheckBoxPreference(this);        /*设置 SharedPreferences的key*/        soundPref.setKey(Constants.SETTINGS_SOUND_ENABLED);        soundPref.setTitle("声音");        /*每一条设置的概要*/        soundPref.setSummary("播放音乐");        soundPref.setSummaryOn("打开软件声音");        soundPref.setSummaryOff("关闭软件声音");        soundPref.setDefaultValue(Boolean.TRUE);        soundPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {            public boolean onPreferenceChange(Preference preference,                    Object newValue) {                boolean checked = Boolean.valueOf(newValue.toString());                if (checked) {                    preference.setTitle("开启声音");                } else {                    preference.setTitle("关闭声音");                }                return true;            }        });        /*设置铃声 */        RingtonePreference ringtonePreference = new RingtonePreference(this);        ringtonePreference.setTitle("设置铃音");        //设置默认录入项        EditTextPreference editTextPreference = new EditTextPreference(this);        editTextPreference.setTitle("XXX标题");        editTextPreference.setText("XXXX");        editTextPreference.setSummary("描述");        editTextPreference.setOrder(0);//设置在列表中显示的位置        editTextPreference.setKey(Constants.SETTINGS_TEXT);                //设置列表        ListPreference listPreference = new ListPreference(this);                        root.addPreference(soundPref);        root.addPreference(ringtonePreference);        root.addPreference(editTextPreference);      //  root.addPreference(listPreference);                //        prefCat.addPreference(notifyPref);        //        prefCat.addPreference(soundPref);        //        prefCat.addPreference(vibratePref);        //        root.addPreference(prefCat);        return root;    }	}

  相关解决方案