在做一般的设置界面时,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;
};
}
希望大家多多交流!!!