android探索の首オプションフレームxPreference

9537 ワード

http://blog.csdn.net/qinjuning/article/details/6710003
単一コントロール:
                        Preferenceコントロール家庭          Viewコントロール家庭       コントロールの意味
                          Preference                  TextView           テキストボックス
                          CheckPreference             CheckBox           単一選択ボックス
                          EditTextPreference          EditText          テキストボックスを入力
                          ListPrference              ListView          リストボックス
                          Ringtonee Preference          ——               ベルの音
http://byandby.iteye.com/blog/1044916
この文章はかなりきついです.よく知っています
http://www.cnblogs.com/wservices/archive/2010/07/08/1773449.html
この文章は完璧な文章です.

private void setOptionText(){
		/*          
		 *      :                     
		 *        _preferences,            xiaohang.zhimeng
		 *                               ,         _preferences                
		 *      :    
		 * */		
		SharedPreferences prefs = getSharedPreferences("xiaohang.zhimeng_preferences", 0);
		//          ,        
		String option = prefs.getString(this.getResources().getString(R.string.selected_flight_sort_option), this.getResources().getString(R.string.flight_sort_option_default_value));
		//               
		String[] optionText = this.getResources().getStringArray(R.array.flight_sort_options);
		//     TextView     
		tv.setText("option value is " + option + "(" + optionText[Integer.parseInt(option)] + ")");
	}
その整った文章.ここで抜粋します
多くの本の中でPrferenceActivityについて紹介していないのを見ましたが、私はちょうどプロジェクトの中で使っていますので、自分の使っているものをここでまとめてみます.後で探しやすいです.
CheckBoxPreference:CheckBox選択項目、対応する値のtureまたはflase.図のように:
[img]:http://dl.iteye.com/upload/picture/pic/104098/254533b7-6725-3d53-a738-bf8cc0b8720c.png[img]
エディットTextPreference:編集ボックスを入力します.値はStringタイプです.入力のためにダイアログがイジェクトされます.
android 探索首选项框架xxxPreference
ListPreference:リスト選択、ポップアップダイアログを選択します.
android 探索首选项框架xxxPreference
Preference:テキスト表示のみを行い、他のものと組み合わせて使用する必要があります.

PreferenceCategory:グループ化に使用します.効果は以下の通りです

PreferenceScreen:PreferenceActivityの要素は、必ずそれである.
Rington ePreference:システム玲音選択.
android 探索首选项框架xxxPreference
OK、Preferencの基本的な要素を紹介しました.次のセクションではそれらを使って完全なPreferenceを作成し、表示します.
---------------------------------------------
MusicPlayer Settingを分析すると、第一部は「私の位置」であり、「無線LAN線を使う」と「GPSを使う」という二つの部分を含み、しかもCheckBoxであり、前節の学習によって、一つのPreferenceCategoryと二つのCheckBoxPreferenceを含むべきである.
Xmlコード:

<PreferenceCategory android:title="    " android:key="set_local">
	<CheckBoxPreference android:key="apply_wifi"
		android:summary="           (  Google  )     " 

                android:title="      " android:defaultValue="true">
	</CheckBoxPreference>
	<CheckBoxPreference android:key="apply_gps"
		android:summary="       (               )" 

                android:title="  GPS">
	</CheckBoxPreference>
</PreferenceCategory>
PreferenceCategory属性分析:
         title:表示されるタイトル
         key:一意の識別子(少なくとも同じプログラムで唯一)、SharedPrferencesもこのKey値でデータを保存します.また、key値で保存された情報を取得することができます.
CheckBoxPreference属性分析:
        キー:一意のマーク
        title:タイトルを表示する(大きなフォント表示)
       summary:サブタイトル(小文字表示)
       defaultValue:デフォルト値(もちろん、ここはtrueまたはfalseです)
Preference.xmlの第二部分は「無線とネットワーク設定」です.この部分は内容が多く、やや複雑で、一歩ずつ分析しています.
xmlコード:

<PreferenceCategory android:title="       ">
	<CheckBoxPreference android:key="apply_fly"
		android:summary="        " android:title="    ">
	</CheckBoxPreference>
	<CheckBoxPreference android:key="apply_internet"
		android:summary="    USB  Internet  "

                android:title="Internet  ">
	</CheckBoxPreference>
	<CheckBoxPreference android:key="apply_wifi"
		android:summary="  Wi-Fi" android:title="Wi-Fi">
	</CheckBoxPreference>
	<Preference android:summary="          " android:title="Wi-Fi  "
		android:dependency="apply_wifi" android:key="wifi_setting">
	</Preference>
	<CheckBoxPreference android:key="apply_bluetooth"
		android:summary="    " android:title="  ">
	</CheckBoxPreference>
	<Preference android:summary="    、           "
		android:title="    " android:dependency="apply_bluetooth"
		android:key="bluetooth_setting">
	</Preference>
	<EditTextPreference android:key="number_edit"
		android:title="      ">
	</EditTextPreference>
	<ListPreference android:title="    " android:entries="@array/department"
			android:entryValues="@array/department_value" 

                        android:dialogTitle="    "
			android:key="depart_value">
	</ListPreference>
	<RingtonePreference android:ringtoneType="all" android:title="  " 

                            android:showDefault="true" android:key="ring_key"

                            android:showSilent="true">
	</RingtonePreference>
</PreferenceCategory>


第二の部分の中で、前の三つは全部CheckBoxPrferenceで、多く言わないで、から始まります.
Preference属性分析:
       キー:一意のマーク
        title:タイトルを表示する(大きなフォント表示)
       summary:サブタイトル(小文字表示)
     dependency:付属の要素を識別します.すなわち、この要素はある要素に付属します.dependency値は付属の要素のkeyです.上のコードのPreference要素はkeyイコール「appyubluetooth」のCheckPreference要素に添付されます.CheckPreference値はPreferenceであり、そうでなければPreferenceではありません.
EditText Preperence属性分析:
        キー:一意のマーク
         title:タイトルを表示する(大きなフォント表示)
ListPreference属性分析:
       キー:一意のマーク
       title:タイトルを表示する(大きなフォント表示)
      dialogTitle:ポップアップダイアログのタイトル
     entries:リストに表示されている値です.1つの配列のために、すべてを読んでリソースファイルで設定します.
    entryValues:リストに実際に保存されている値も、entriesに対応します.リソースファイルを通じて通読して設定します.以下のコードはarrays.xmlファイルの内容です.

    <resources>
    	<string-array name="department">
    		<item>   </item>
    		<item>   </item>
    		<item>   </item>
    	</string-array>
    	<string-array name="department_value">
    		<item>001</item>
    		<item>002</item>
    		<item>003</item>
    	</string-array>
    </resources>
Rington ePreference:玲音(今は使ったことがない)は、一時的に省略しました.
オーケー、Preference.xmlの内容はすでに分析済みです.属性は大体同じです.自分の力で試してみても大丈夫です.Preference.xmlの内容はどうやって現れますか?
LayoutはActivityのクラスから継続して表示するもので、前述したように、PreferenceActivityはpreferenceを表示するための専用のものですので、PreferenceActivityクラスを作成すればいいです.コードは以下の通りです.

public class Setting extends PreferenceActivity {
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		//            SharePreferences
		addPreferencesFromResource(R.xml.preference);
	}
}
続いてプログラムを実行し、労働の成果を表示します.これで仕事の大半が完成しました.すべての値はSharedPreferencesに保存されます.保存の結果も読み取りできます.
もう一つの重要な問題は、PreferenceActivityの操作にどう対応するかということです.PreferenceActivityのone PreferenceTreeClickの方法を書き換えるだけでいいです.パラメータpreferenceでその要素を判断し、必要に応じて操作します.

@Override

public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
		Preference preference) {
	return false;
}

 
イベントの追加方法

mCheckBox.setOnPreferenceChangeListener(this);