preference用法简单介绍

在做一般的设置界面时,ANDROID开发为我们提供了一个非常实用的设置类,PreferenceActivity,用法与ACTIVITY十分相似,现简单介绍如下:

1.xml

使用PreferenceActivity时需要自定义一个xml,内部使用的控件都来自PreferenceActivity,这里用一个CheckBoxPreference和一个Preference为例,xml定义如下:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
  xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory android:title="test">
        <CheckBoxPreference android:summaryOff="已关闭" android:summaryOn="已开启" android:key="checkbox_shake1" android:title="shake"></CheckBoxPreference>
        <Preference android:title="shake_setting" android:key="shake1_setting" android:dependency="checkbox_shake1"></Preference>
    	
    </PreferenceCategory>
    
    
</PreferenceScreen>


这里CheckBoxPreference 相当于一个view中的checkbox,summaryoff属性为不选择时的小标题,summaryon为选择时的小标题,Preference的dependency属性为基于哪个空间触发,即当CheckBoxPreference 选中时,Preference可以操作,否则Preference为灰色不能处理。

2.   .java

package hui.dickren123.com;

import dickren123.hui.say_hello_to_world.R;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.util.Log;

public class Preference_activity_of_huitestActivity extends PreferenceActivity 
				implements Preference.OnPreferenceClickListener{
	private CheckBoxPreference checkbox_shake1;
	private Preference shake1_settings;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.huitest);//引入布局文件 相当于setContentView();
        
        checkbox_shake1 = (CheckBoxPreference)findPreference("checkbox_shake1");
        shake1_settings = (Preference)findPreference("shake1_setting");//findPreference类似findViewById
        
        shake1_settings.setOnPreferenceClickListener(this);//设置Preference的监听 
        												   //由于引入Preference.OnPreferenceClickListener接口
        													//故只需传入匿名对象
        
    }
    
	@Override
	public boolean onPreferenceClick(Preference arg0) {
		Log.i("123", " 123"); //点击Preference事件
		
		return false;
	};
}


希望大家多多交流!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值