Android Activity加载SettingsFragment

来源:互联网 发布:知乎 1024地址 编辑:程序博客网 时间:2024/05/18 01:51

Activity加载SettingsFragment 设置

Preference.xml布局:

<?xml version="1.0" encoding="UTF-8"?><PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >        <PreferenceCategory android:title="第一组">        <ListPreference             android:icon="@drawable/zjl"            android:dialogTitle="list dialog Title"            android:entries="@array/citys"            android:entryValues="@array/citys_code"            android:key="list_key"            android:summary="list 的内容"            android:title="选择  title"            />     </PreferenceCategory>        <PreferenceCategory android:title="第二组">        <EditTextPreference             android:icon="@drawable/ic_launcher"            android:defaultValue="缺省值1"            android:key="edit_text_key_1"            android:summary="edit summary"            android:title="写什么  text 1"            />        <CheckBoxPreference             android:icon="@drawable/ic_launcher"            android:defaultValue="true"            android:key="checkbox_key"            android:summary="checkbox summary"            android:title="勾选  title"            />    </PreferenceCategory>        <!-- 点击将浏览和打开网页 -->    <Preference        android:icon="@drawable/csdn"       android:summary="http://blog.csdn.net/Rokends"       android:title="网页浏览">      <intent              android:action="android.intent.action.VIEW"              android:data="http://blog.csdn.net/Rokends"             />            </Preference>          <SwitchPreference         android:icon="@drawable/wifi"        android:key="open_key"        android:summary="Chaniese_520"        android:title="WiFi" />        <!-- 此处将跳转到下一屏设置 -->    <PreferenceScreen         android:icon="@drawable/ic_launcher"        android:key="preference_screen_key_2"        android:persistent="false"        android:title="跳转到下页 "        >        <EditTextPreference             android:icon="@drawable/ic_launcher"            android:defaultValue="缺省值2"              android:key="edit_text_key_2"              android:summary="edit summary"              android:title="写什么  text 2"             />            </PreferenceScreen>    </PreferenceScreen>

arrys.xml:

<?xml version="1.0" encoding="utf-8"?><resources>    <string-array name="citys">          <item>成都</item>          <item>北京</item>          <item>上海</item>      </string-array>        <string-array name="citys_code">        <item>028</item>          <item>010</item>          <item>021</item>      </string-array></resources>

ManiActivity :

package com.example.settings;import android.app.Activity;import android.os.Bundle;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit();}}

SettingsFragment extends PreferenceFragment:

package com.example.settings;import android.content.SharedPreferences;import android.content.SharedPreferences.OnSharedPreferenceChangeListener;import android.os.Bundle;import android.preference.EditTextPreference;import android.preference.ListPreference;import android.preference.Preference;import android.preference.PreferenceFragment;import android.preference.PreferenceManager;import android.preference.PreferenceScreen;import android.util.Log;import android.widget.Toast;public class SettingsFragment extends PreferenceFragment{private OnSharedPreferenceChangeListener mOnSharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() {@Overridepublic void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {if(key.equals(A_KEY)){String s=sharedPreferences.getString(A_KEY, "NULL");mEditTextPreference.setSummary(s);}if(key.equals("list_key")){String e=mListPreference.getEntry()+"";String v=mListPreference.getValue();mListPreference.setSummary(e+" - "+v);}Toast.makeText(getActivity(), key, Toast.LENGTH_SHORT).show();}};private EditTextPreference mEditTextPreference;private final String A_KEY = "edit_text_key_1";privateListPreference mListPreference;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 通用的读取设置的某个值的方法SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());String s = sharedPreferences.getString("edit_text_key_1", "暂时为空");Log.d("edit_text_key_1", s);addPreferencesFromResource(R.xml.preferences);sharedPreferences.registerOnSharedPreferenceChangeListener(mOnSharedPreferenceChangeListener);mEditTextPreference = (EditTextPreference) findPreference(A_KEY);mListPreference=(ListPreference) findPreference("list_key");}@Overridepublic void onResume() {          super.onResume();          getPreferenceScreen().getSharedPreferences()                  .registerOnSharedPreferenceChangeListener(mOnSharedPreferenceChangeListener);      }        @Overridepublic void onPause() {          super.onPause();          getPreferenceScreen().getSharedPreferences()                  .unregisterOnSharedPreferenceChangeListener(mOnSharedPreferenceChangeListener);      }      // 那一个设置选项栏被触发      @Override      public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {      Toast.makeText(getActivity(), preference.getTitle()+" -> "+preference.getKey(), Toast.LENGTH_LONG).show();        return false;      }  }


0 0
原创粉丝点击