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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章