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;
    }
	
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值