• android 开发-系统设置界面的实现


    具体与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         <CheckBoxPreference
    12             android:key="wireless_network"
    13             android:summary="使用无线网络查看应用程序(例如Google地图中的位置)"
    14             android:title="使用无线网络" />
    15         <CheckBoxPreference
    16             android:key="gps_satellite_setting"
    17             android:summary="定位时,精确到接到级别(取消选择可节约电量)"
    18             android:title="启用GPS卫星导航" />
    19     </PreferenceCategory>
    20     <PreferenceCategory
    21         android:key="myMessage"
    22         android:summary="个人信息设置"
    23         android:title="个人信息设置" >
    24         <CheckBoxPreference
    25             android:key="yesno_save_individual_info"
    26             android:title="是否保存个人信息" />
    27 
    28         <EditTextPreference
    29             android:key="individual_name"
    30             android:summary="请输入真实姓名"
    31             android:title="姓名" />
    32 
    33         <ListPreference
    34             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 xiaowu
    15  * @NOTE: 状态改变后的自动文件存储 需要继承PreferenceActivity的类和实现OnPreferenceChangeListener接口,重写onPreferenceTreeClick方法进行业务逻辑处理
    16  */
    17 public class MainActivity extends PreferenceActivity implements
    18         OnPreferenceChangeListener {
    19 
    20     @Override
    21     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     @Override
    33     public boolean onPreferenceChange(Preference preference, Object newValue) {
    34         // TODO Auto-generated method stub
    35         return false;
    36     }
    37 
    38     // 如果需要勾选一项后,其他项不可用,需要重写方法onPreferenceTreeClick(PreferenceScreen
    39     // preferenceScreen,Preference preference),并在该方法中处理业务逻辑
    40     @Override
    41     @Deprecated
    42     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 stub
    53         return super.onPreferenceTreeClick(preferenceScreen, preference);
    54     }
    55 
    56 }

       效果展示:

      

  • 相关阅读:
    单例模式
    工厂方法模式
    简单工厂模式
    LoadRunner11.0下载及安装链接~(By网络)
    lombok 介绍及基本使用方法
    360浏览器拦截弹窗,window.open方式打不开新页面
    js生成二维码
    Filter过滤器的写法
    JavaScript获取浏览器类型与版本
    如何截取date类型的年月日部分?
  • 原文地址:https://www.cnblogs.com/HEWU10/p/4371027.html
Copyright © 2020-2023  润新知