android 开发-系统设置界面的实现
2024-08-21 12:56:55
具体与Preference的用法类似,这里就不做过多解释,直接贴示例代码,需要在res下新建xml文件夹,在xml文件夹下添加xml文件。
xml:(注意:root节点是:PreferenceScreen)
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 类别 -->
<PreferenceCategory
android:key="mylocation"
android:summary="我的位置源"
android:title="我的位置" > <!-- 可以加各种其他控件如 :CheckBoxPreference -->
<CheckBoxPreference
android:key="wireless_network"
android:summary="使用无线网络查看应用程序(例如Google地图中的位置)"
android:title="使用无线网络" />
<CheckBoxPreference
android:key="gps_satellite_setting"
android:summary="定位时,精确到接到级别(取消选择可节约电量)"
android:title="启用GPS卫星导航" />
</PreferenceCategory>
<PreferenceCategory
android:key="myMessage"
android:summary="个人信息设置"
android:title="个人信息设置" >
<CheckBoxPreference
android:key="yesno_save_individual_info"
android:title="是否保存个人信息" /> <EditTextPreference
android:key="individual_name"
android:summary="请输入真实姓名"
android:title="姓名" /> <ListPreference
android:entries="@array/citys"
android:entryValues="@array/citys"
android:key="mycity"
android:summary="所属城市"
android:title="城市列表" />
</PreferenceCategory> </PreferenceScreen>
setting.xml
activity
package com.example.android_data_storage_share2; import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.EditTextPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceActivity;
import android.preference.PreferenceScreen;
import android.widget.Toast; /**
* @author xiaowu
* @NOTE: 状态改变后的自动文件存储 需要继承PreferenceActivity的类和实现OnPreferenceChangeListener接口,重写onPreferenceTreeClick方法进行业务逻辑处理
*/
public class MainActivity extends PreferenceActivity implements
OnPreferenceChangeListener { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
// 加载设置的底层界面 API11之前可以使用下面的方式,而高版本使用perferenceFragment,
addPreferencesFromResource(R.xml.setting);
//得到屏幕管理器并设置它的名称
// getPreferenceManager().setSharedPreferencesName("mysetting2");
// addPreferencesFromResource(R.xml.mysetting);
} // 通过preference找到某个节点
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
// TODO Auto-generated method stub
return false;
} // 如果需要勾选一项后,其他项不可用,需要重写方法onPreferenceTreeClick(PreferenceScreen
// preferenceScreen,Preference preference),并在该方法中处理业务逻辑
@Override
@Deprecated
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
Preference preference) {
if ("yesno_save_individual_info".equals(preference.getKey())) {
CheckBoxPreference checkBoxPreference = (CheckBoxPreference) findPreference("yesno_save_individual_info");
EditTextPreference editTextPreference = (EditTextPreference) findPreference("individual_name");
editTextPreference.setEnabled(checkBoxPreference.isChecked());
// ListPreference listPreference = (ListPreference)
// findPreference("mycity");
// listPreference.setEnabled(false);
}
// TODO Auto-generated method stub
return super.onPreferenceTreeClick(preferenceScreen, preference);
} }
效果展示:
最新文章
- 通过sails和阿里大于实现短信验证
- android px转换为dip/dp
- Neusoft(3)增加自己的内核模块
- python通过ip获取地址
- Unity Shader:Blur
- 字符串(后缀数组):POJ 3415 Common Substrings
- Spring+SpringMVC+MyBatis深入学习及搭建(三)——MyBatis全局配置文件解析
- selenium+python环境的搭建的自动化测试
- ASP.NET MVC HttpPostedFileBase文件上传
- Eclipse运行Java简单实例
- Eclipse 搭建 Strust2开发环境
- ";敏捷革命";读书笔记
- Canvas 和 SVG 的不同
- 第三个Sprint ------第六天
- C++ VC实现对话框窗口任意分割
- web项目页面加载时,下拉框有值
- dcoker常用命令
- JSTL核心标签
- android 自己定义组合控件
- SMTPSenderRefused: (530, ‘5.5.1 Authentication Required. Learn more at \n5.5.1