zoukankan      html  css  js  c++  java
  • 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 }

       效果展示:

      

  • 相关阅读:
    Codeforces 1316B String Modification
    Codeforces 1305C Kuroni and Impossible Calculation
    Codeforces 1305B Kuroni and Simple Strings
    Codeforces 1321D Navigation System
    Codeforces 1321C Remove Adjacent
    Codeforces 1321B Journey Planning
    Operating systems Chapter 6
    Operating systems Chapter 5
    Abandoned country HDU
    Computer HDU
  • 原文地址:https://www.cnblogs.com/HEWU10/p/4371027.html
Copyright © 2011-2022 走看看