android 开发-系统设置界面的实现
16lz
2021-01-26
具体与Preference的用法类似,这里就不做过多解释,直接贴示例代码,需要在res下新建xml文件夹,在xml文件夹下添加xml文件。
xml:(注意:root节点是:PreferenceScreen)
1 <?xml version="1.0" encoding="utf-8"?> 2 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > 3 4 <!-- 类别 --> 5 <PreferenceCategory 6 android:key="mylocation" 7 android:summary="我的位置源" 8 android:title="我的位置" > 9 10 <!-- 可以加各种其他控件如 :CheckBoxPreference -->11 <CheckBoxPreference12 android:key="wireless_network"13 android:summary="使用无线网络查看应用程序(例如Google地图中的位置)"14 android:title="使用无线网络" />15 <CheckBoxPreference16 android:key="gps_satellite_setting"17 android:summary="定位时,精确到接到级别(取消选择可节约电量)"18 android:title="启用GPS卫星导航" />19 </PreferenceCategory>20 <PreferenceCategory21 android:key="myMessage"22 android:summary="个人信息设置"23 android:title="个人信息设置" >24 <CheckBoxPreference25 android:key="yesno_save_individual_info"26 android:title="是否保存个人信息" />27 28 <EditTextPreference29 android:key="individual_name"30 android:summary="请输入真实姓名"31 android:title="姓名" />32 33 <ListPreference34 android:entries="@array/citys"35 android:entryValues="@array/citys"36 android:key="mycity"37 android:summary="所属城市"38 android:title="城市列表" />39 </PreferenceCategory>40 41 </PreferenceScreen>setting.xml
activity
1 package com.example.android_data_storage_share2; 2 3 import android.os.Bundle; 4 import android.preference.CheckBoxPreference; 5 import android.preference.EditTextPreference; 6 import android.preference.ListPreference; 7 import android.preference.Preference; 8 import android.preference.Preference.OnPreferenceChangeListener; 9 import android.preference.PreferenceActivity;10 import android.preference.PreferenceScreen;11 import android.widget.Toast;12 13 /**14 * @author xiaowu15 * @NOTE: 状态改变后的自动文件存储 需要继承PreferenceActivity的类和实现OnPreferenceChangeListener接口,重写onPreferenceTreeClick方法进行业务逻辑处理16 */17 public class MainActivity extends PreferenceActivity implements18 OnPreferenceChangeListener {19 20 @Override21 protected void onCreate(Bundle savedInstanceState) {22 super.onCreate(savedInstanceState);23 // setContentView(R.layout.activity_main);24 // 加载设置的底层界面 API11之前可以使用下面的方式,而高版本使用perferenceFragment,25 addPreferencesFromResource(R.xml.setting);26 //得到屏幕管理器并设置它的名称27 // getPreferenceManager().setSharedPreferencesName("mysetting2");28 // addPreferencesFromResource(R.xml.mysetting);29 }30 31 // 通过preference找到某个节点32 @Override33 public boolean onPreferenceChange(Preference preference, Object newValue) {34 // TODO Auto-generated method stub35 return false;36 }37 38 // 如果需要勾选一项后,其他项不可用,需要重写方法onPreferenceTreeClick(PreferenceScreen39 // preferenceScreen,Preference preference),并在该方法中处理业务逻辑40 @Override41 @Deprecated42 public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,43 Preference preference) {44 if ("yesno_save_individual_info".equals(preference.getKey())) {45 CheckBoxPreference checkBoxPreference = (CheckBoxPreference) findPreference("yesno_save_individual_info");46 EditTextPreference editTextPreference = (EditTextPreference) findPreference("individual_name");47 editTextPreference.setEnabled(checkBoxPreference.isChecked());48 // ListPreference listPreference = (ListPreference)49 // findPreference("mycity");50 // listPreference.setEnabled(false);51 }52 // TODO Auto-generated method stub53 return super.onPreferenceTreeClick(preferenceScreen, preference);54 }55 56 }
效果展示:
更多相关文章
- Android(安卓)ApiDemos示例解析(101):Views->Auto Complete->3.
- React-Native-StatusBar
- android API Window类
- android 3D系列之光效篇
- android:三种菜单(Menu)的设置
- Android(安卓)设备管理器 理解和使用
- Android(安卓)fragment 重叠问题,闪退后fragment重叠bug解决方法
- Android入门笔记 - 网络通信 - HttpClient
- 模仿墨迹天气设置界面布局