展会信息港展会大全

Android保存设置的PreferenceActivity
来源:互联网   发布日期:2016-01-14 09:52:07   浏览:1521次  

导读:界面XML文件:preference_setting.xml?xml version=1.0 encoding=UTF-8? PreferenceScreen xmlns:android=http://schemas.android.com/apk/res/android PreferenceCategory android:title=我的......

界面XML文件:preference_setting.xml

<?xml version="1.0" encoding="UTF-8"?>

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

<PreferenceCategory android:title="我的位置源">

<CheckBoxPreference

android:key="my_wireless_network"

android:title="使用无线电"

android:summary="使用无线网络查看应用程序(例如Google地图)中的位置"

/>

<CheckBoxPreference

android:key="my_gps_satellite_setting"

android:title="启用GPS卫星设置"

android:summary="定位时,精确到街道级别(取消选择可节约电量)"

/>

</PreferenceCategory>

<PreferenceCategory android:title="个人信息设置">

<CheckBoxPreference

android:key="my_yesno_save_individual_info"

android:title="是否保存个人信息"

/>

<EditTextPreference

android:key="my_individual_name"

android:title="姓名"

android:summary="请输入真实姓名"

/>

<PreferenceScreen

android:key="my_other_individual_msg"

android:title="其他个人信息"

android:summary="是否工作、手机">

<CheckBoxPreference

android:key="my_is_an_employee"

android:title="是否工作"

/>

<EditTextPreference

android:key="my_mobile"

android:title="手机"

android:summary="请输入您的手机号码"

/>

</PreferenceScreen>

</PreferenceCategory>

</PreferenceScreen>

PreferenceActivity的类文件:

package com.icitylife.preference;

import android.content.SharedPreferences;

import android.os.Bundle;

import android.preference.Preference;

import android.preference.PreferenceActivity;

import android.preference.PreferenceScreen;

import android.preference.Preference.OnPreferenceChangeListener;

public class Main extends PreferenceActivity implements

OnPreferenceChangeListener {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// 设置PreferenceActivity保存数据使用的XML文件的名称

getPreferenceManager().setSharedPreferencesName("mySetting");

// 加载XML资源文件:此处就不能使用Activity的setContentView()

addPreferencesFromResource(R.xml.preference_setting);

// 获染姓名】设置项对应的Preference对象

Preference individualNamePreference = findPreference("my_individual_name");

// 获得指向mySetting.xml文件的SharedPreference对象

SharedPreferences sharedPreferences = individualNamePreference

.getSharedPreferences();

// 设置【姓名】设置项的summary

individualNamePreference.setSummary(sharedPreferences.getString(

"my_individual_name", ""));

// 判断【是否保存个人信息】设置项是否被选中

if (sharedPreferences

.getBoolean("my_yesno_save_individual_info", false)) {

individualNamePreference.setEnabled(true);

} else {

individualNamePreference.setEnabled(false);

}

individualNamePreference.setOnPreferenceChangeListener(this);

// 获得【电话号码】设置项对应的Preference对象

Preference mobileNamePreference = findPreference("my_mobile");

SharedPreferences mobileSharedPreferences = mobileNamePreference

.getSharedPreferences();

// 设置【电话号码】的summary

mobileNamePreference.setSummary(mobileSharedPreferences.getString(

"my_mobile", ""));

mobileNamePreference.setOnPreferenceChangeListener(this);

}

@Override

public boolean onPreferenceChange(Preference preference, Object newValue) {

preference.setSummary(String.valueOf(newValue));

return true;

}

/**

* 处理【是否保存个人信息】的改变事件

*/

@Override

public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,

Preference preference) {

if ("my_yesno_save_individual_info".equals(preference.getKey())) {

findPreference("my_individual_name").setEnabled(

!findPreference("my_individual_name").isEnabled());

}

return super.onPreferenceTreeClick(preferenceScreen, preference);

}

}

赞助本站

人工智能实验室
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港