亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

使用PreferenceActivity和PreferenceScreen構建

系統 2101 0

?? 對于每個應用程序來說,都要有一些屬于用戶自己的設置,滿足不同需求。當我們點擊menu時,如下:



?點擊settings時,出現:


使用PreferenceActivity和PreferenceScreen構建應用的設置
?那么這樣的效果是怎么實現的呢?我只是來個簡單介紹,給自己做備忘,也是給大家點思路吧。在android的路上,我們一起努力吧。

這里我們僅說第二個圖片效果的實現,第一個圖片的效果,想必大家都會了,就是使用menu類的幾個方法就可以了。

1.PreferenceScreen 的使用。

首先要定義一下整個布局即使用xml文件夾下的preferences.xml。

代碼如下:

    <?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 如果擁有多個首選項,可以構建一個視圖來顯示首選項高級類別。用戶然后就可以深入到每個類別,查看和管理特
定于該組的首選項。 可以通過兩種方式來實現此目的。可以在根 PreferenceScreen中引入嵌套的 PreferenceScreen 元素,
或者可以使用 PreferenceCategory 來獲得類似的結果。 -->
	<PreferenceCategory android:title="@string/app_name"
		android:summary="Application settings">

		<EditTextPreference android:key="user_name"
			android:defaultValue="@null" 
			android:title="@string/preference_username_title"
			android:summary="@string/preference_username_summary" />
		<ListPreference
                android:key="download_format"
                android:title="@string/preference_codec_title"
                android:summary="@string/preference_codec_summary"
                android:entries="@array/stream_codecs"
                android:entryValues="@array/stream_codecs_values" />
		<ListPreference
                android:key="cache_option"
                android:title="@string/preference_cache_title"
                android:summary="@string/preference_cache_summary"
                android:entries="@array/cache_size"                 
                android:entryValues="@array/cache_size_values"/>                
		<CheckBoxPreference android:key="wifi_only"
			android:defaultValue="false" 
			android:title="@string/preference_wifi_only_title"
			android:summary="@string/preference_wifi_only_summary" />
		<CheckBoxPreference android:key="roaming_protection"
			android:defaultValue="true" 
			android:title="@string/preference_roaming_summary"
			android:summary="@string/preference_roaming_summary" />
		
	</PreferenceCategory>

	<PreferenceCategory android:title="@string/preference_3rdparty_title"
		android:summary="@string/preference_3rdparty_summary">

		<CheckBoxPreference android:defaultValue="false" 
			android:key="scrobbling_enabled" android:title="@string/scrobbling_enabled"/>
		<ListPreference android:key="scrobbler_app" android:dependency="scrobbling_enabled" android:entries="@array/scrobbler_apps" android:title="@string/scrobbler_app" android:entryValues="@array/scrobbler_apps_values" android:summary="@string/scrobbler_app_summary"></ListPreference>
		
	</PreferenceCategory>

	<PreferenceCategory android:title="@string/gestures_preference_title"
		android:summary="@string/gestures_preference_summary">
		<CheckBoxPreference android:key="gestures"
			android:defaultValue="true"
			android:title="@string/gestures_support"
			android:summary="@string/gestures_support_summary"/>
	</PreferenceCategory>
	<PreferenceCategory android:title="@string/preference_reset_title">
		<Preference android:key="reset_firstrun" android:summary="@string/preference_firstrun_reset_summary" android:title="@string/preference_firstrun_reset_title"></Preference>
	</PreferenceCategory>

</PreferenceScreen>
  

?

其中:

特性??????????????????????????????? 說明
android:key?????????????????????? 選項的名稱或鍵(比如selected_flight_sort_option)

android:title?????????????????????? 選項的標題

android:summary?????????????? 選項的簡短摘要

android:entries????????????????? 可將選項設置成列表項的文本

android:entryValues????????? 定義每個列表項的值。注意:每個列表項有一些文本和 一 個 值。 文本由

entries定義,值由entryValues定義。

android:dialogTitle???????????? 對話框的標題,在視圖顯示為模態對話框時使用
android:defaultValue????????? 項列表中選項的默認值

?

在開發文檔中這樣定義PreferenceScreen,?Represents a top-level Preference that is the root of a Preference hierarchy. 即顯示了首選項組織體系的最頂級。

?

2.PreferenceActivity

A PreferenceActivity points to an instance of this class to show the preferences. 即我們通過實例化一個繼承PreferenceActivity 的類來展示首選項,代碼如下

    public class SettingsActivity extends PreferenceActivity { 
@Override
 public void onCreate(Bundle savedInstanceState) 
  
    { requestWindowFeature(Window.FEATURE_NO_TITLE); 
  
    super.onCreate(savedInstanceState); //添加設置,加入引用 
  
    addPreferencesFromResource(R.xml.preferences); 
setContentView(R.layout.settings); }
  

?

?關于布局文件settings.xml:

?

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:layout_width="fill_parent"
	android:layout_height="fill_parent" android:background="#000000">

	<LinearLayout android:layout_width="fill_parent"
		android:layout_height="wrap_content" android:background="@drawable/gradient_dark_purple"
		android:orientation="horizontal" android:gravity="center"
		android:minHeight="75dip">
		<LinearLayout android:layout_height="wrap_content"
			android:minHeight="75dip" android:layout_width="fill_parent"
			android:orientation="horizontal" android:gravity="center_vertical"
			android:paddingLeft="13dip" android:paddingRight="13dip">
			<ImageView android:layout_width="48dip"
				android:layout_height="48dip" android:src="@drawable/settings"></ImageView>
			<LinearLayout android:layout_height="wrap_content"
				android:paddingLeft="13dip" android:orientation="vertical"
				android:layout_width="fill_parent">
				<TextView android:layout_width="wrap_content"
					android:singleLine="true" android:layout_height="wrap_content"
					android:textSize="18dip" android:textColor="#ffffff" android:text="@string/settings"></TextView>
				<TextView android:layout_width="wrap_content"
					android:layout_height="wrap_content" android:textSize="12dip"
					android:textColor="#ffffff"></TextView>
				<TextView android:id="@+id/ItemsCountTextView"
					android:layout_width="wrap_content" android:layout_height="wrap_content"
					android:layout_gravity="right" android:textSize="12dip"
					android:textColor="#ffffff" android:text=" "></TextView>
			</LinearLayout>
		</LinearLayout>
	</LinearLayout>

	<ListView android:layout_width="fill_parent" android:id="@android:id/list"
		android:layout_weight="1" android:layout_height="fill_parent">
	</ListView>
</LinearLayout>
  

?當我們點擊其中某一項時,如cache option

效果:

?
使用PreferenceActivity和PreferenceScreen構建應用的設置
?用到了我們在res下定義的arrays.xml

其中部分內容如下:

       <resources>   
  <string-array name="cache_size">
        <item>Off</item>
        <item>50 MB</item>
        <item>100 MB</item>
        <item>250 MB</item>
        <item>500 MB</item>
    </string-array>    
    <string-array name="cache_size_values">
        <item>0</item>
        <item>50</item>
        <item>100</item>
        <item>250</item>
        <item>500</item>
    </string-array>
</resources>
  

?

實在不明白的可以參考: http://byandby.iteye.com/blog/1045508 ?謝謝作者呵呵。

?


?僅提供思路。


?

使用PreferenceActivity和PreferenceScreen構建應用的設置


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 色老头福影院韩国激情影院 | 九九精品热线免费观看6 | 欧美乱子伦一区二区三区 | 日韩最新视频一区二区三 | 99久久精品一区二区三区 | 九九久久免费视频 | 日韩欧美黄色片 | 性色视频 | 精品欧美一区二区精品久久 | 国产福利91精品一区二区三区 | 被公侵犯肉体中文字幕一区二区 | 久久精品国产亚洲欧美 | 国内精品久久久久香蕉 | 一本清高清dvd日本播放器 | 国产午夜精品久久久久免费视 | 色老头成人免费视频天天综合 | 亚洲综合国产一区二区三区 | 成年人精品视频 | chinese国产在线视频 | 国产特黄一级一片免费 | 久草网在线| 爽爽影院在线免费观看 | 99久热在线精品视频观看 | 国产精品久久久久久久久夜色 | 5566中文字幕亚洲精品 | 国产羞羞羞视频在线观看 | 精品中文字幕不卡在线视频 | 国产亚洲精品精品国产亚洲综合 | 久热免费 | 天天射天天干天天插 | 精品久久久久久中文字幕一区 | 青青青永久免费视频 | 久久亚洲美女久久久久 | 国产成人一区二区三区高清 | 北岛玲日韩精品一区二区三区 | 香香在线观看视频 | 91成人午夜在线精品 | 天天色综网 | 久久中文字幕综合不卡一二区 | 国产精品v欧美精品∨日韩 国产精品v一区二区三区 | 久久国产乱子伦精品免费不卡 |