zoukankan      html  css  js  c++  java
  • 【转】 Pro Android学习笔记(六十):Preferences(4):MultiSelect List Preference

    目录(?)[-]

    1. XML文件
    2. 在设备中保存
    3. 读出信息

    ListPreference提供单选列表,我们可以通过CheckBoxPreference提供多选列表。此外,Android在3.0后提供MultiSelectListPreference,它的实现和ListPreference相似,不同的是还可以不选择或者多个选择。如图所示。

    XML文件

    在复合例子中加入相关的内容,如下。同样地可以采用@array来对entry和entryvalue进行定义,使用比CheckBox Preference要方便。

    ...... 
      <PreferenceScreen android:key="multi_select_test" 
        android:title="MultiSelect List Preference" 
        android:summary="Test for Multiselect List Preferences"> 
          <MultiSelectListPreference android:key="fruits" 
            android:title="Select Your Favourite Fruits" 
            android:summary="选择您喜欢的水果" 
            android:entries="@array/fruit" 
            android:entryValues="@array/fruit_index" 
            android:dialogTitle="水果:"  />     
      </PreferenceScreen> 
    … …

    在设备中保存

    <?xml version='1.0' encoding='utf-8' standalone='yes' ?>
    <map> 
        … …  
        <set name="fruits"> 
            <string>2</string> 
            <string>0</string> 
        </set> 
        … … 
    </map>

    读出信息

    从保存文件中可以看出,数据格式是Set,读取起来比以往的稍微麻烦一点,代码如下:

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
    Set<String>options = prefs.getStringSet("fruits", null);  //因不设置初始值,所以要进行null的判断 
    showInfo("Multi Select: " + options); 
    String[] fruits = getResources().getStringArray(R.array.fruit); 
    if(options != null ){
        for(String f: options){  
            showInfo("select " + fruits[Integer.parseInt(f)]);
        } 
    }

    本博文涉及的例子代码,可以在Pro Android学习:Preference(首选项)小例子中下载。

    相关链接: 我的Android开发相关文章

  • 相关阅读:
    hdu 5253 最小生成树
    hdu5248 序列变换
    bjfu1299 stl使用
    bjfu1277 简单递归
    bjfu1262 优先队列
    bjfu1287字符串输出的大水题
    bjfu1281
    bjfu1253 最大上升子序列和
    [转][Unity3D]引擎崩溃、异常、警告、BUG与提示总结及解决方法
    Unity3d 中 将远程 MySQL 数据库转换为本地 Sqlite
  • 原文地址:https://www.cnblogs.com/blongfree/p/5048027.html
Copyright © 2011-2022 走看看