Android设置界面

本文介绍了如何创建Android设置界面,包括使用PreferenceScreen和PreferenceCategory的差异,以及CheckBoxPreference和ListPreference的关键属性设置。通过Java代码和string.xml资源文件的示例,展示了设置界面的构建过程,并强调key属性对于系统保存设置结果的重要性。同时提供了相关教程链接作为参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

效果图


Settings类Java代码

import android.os.Bundle;
import android.preference.PreferenceActivity;

public class Settings extends PreferenceActivity
{
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		addPreferencesFromResource(R.layout.preferences);
	}
}

string.xml

中需要加上2个字符串数组

<string-array name="auto_update_frequency_entry">  
        <item>10分钟</item>  
        <item>30分钟</item>  
        <item>1小时</item>  
        <item>12小时</item>  
        <item>24小时</item>     
    </string-array>  
    <string-array name="auto_update_frequency_value">  
        <item>10</item>  
        <item>30</item>  
        <item>60</item>  
        <item>720</item>  
        <item>1440</item>     
    </string-array>  


preferences.xml

<?xml version="1.0" encoding="UTF-8"?>  
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:title="setting" >
  
    <CheckBoxPreference    
            android:title="Love me?"   
            android:summaryOn="Yes,I love you!"  
            android:summaryOff="No,I am sorry."  
            android:defaultValue="true">  
        </CheckBoxPreference>  
        
    <PreferenceCategory  
        android:title="PreferenceCategory:Emotions"  
        android:summary="settings about emotions">  
        <CheckBoxPreference    
            android:title="Love me?"   
            android:summaryOn="Yes,I love you!"  
            android:summaryOff="No,I am sorry."  
            android:defaultValue="true">  
        </CheckBoxPreference>  
        <CheckBoxPreference   
            android:title="Hate me?"   
            android:summaryOn="Yes,I hate you!"  
            android:summaryOff="No,you are a good person."  
            android:defaultValue="false">  
        </CheckBoxPreference>       
    </PreferenceCategory>

    <PreferenceScreen
        android:title="PreferenceScreen:Relations"  
        android:summary="settings about relations">  
        <CheckBoxPreference   
            android:title="Family?"   
            android:summaryOn="Yes,we are family!"  
            android:summaryOff="No,I am sorry."  
            android:defaultValue="true">  
        </CheckBoxPreference>  
        <CheckBoxPreference   
            android:title="Friends?"   
            android:summaryOn="Yes,we are friends!"  
            android:summaryOff="No,I am sorry."  
            android:defaultValue="false">  
        </CheckBoxPreference>       
    </PreferenceScreen>     

	    <ListPreference    
	        android:key="list_key"
	        android:title="自动更新"    
	        android:summary="设置自动更新频率"    
	        android:entries="@array/auto_update_frequency_entry"    
	        android:entryValues="@array/auto_update_frequency_value"    
	        android:dialogTitle="更新频率"    
	        android:defaultValue="10"
	    /> 
</PreferenceScreen>

说明:

1.PreferenceScreen中嵌套着PreferenceScreen的话,那需要再跳转一个界面才到选择界面,而用PreferenceCategory就直接显示在当前界面可以对其选择。

2.CheckBoxPreference 、ListPreference 都有个key属性,貌似必须设置了key属性系统才会自动对设置结果进行保存,因为保存的形式是类似map的键值对形式保存,所以没有key也就没法保存了。


参考:

http://www.cnblogs.com/kakafra/archive/2012/09/19/2694444.html

http://blog.youkuaiyun.com/ichliebephone/article/details/5916320

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值