• MultiSelectListPreference 的使用心得


    最近在学习Android上的开发,打算做一个app。在做之前感觉很简单的功能,自己也有几年的C++经验,应该学起来很容易。但是事实告诉我,要注意的细节还是很多的。

    大部分的app都会有设置页面, 用来配置一些使用上的特性,android提供了一个perferenceActivity的activity来支持与设置相关的开发工作,具体的内容可以参看sdk。这里主要说明一下如何使用MultiSelectListPreference。MultiSelectListPreference 提供了一个多选的列表供用户选择,然后会自动的持久化到SharedPreference中去,一个比较简单的xml配置节如下:

                <MultiSelectListPreference
                    android:key="abc"
                    android:entries="@array/days"
                    android:entryValues="@array/day_value"  
                    android:title="重复"
                    android:summary="无"                       
                    />

    其中的android:entries 是弹出列表的文本数组,而android:entryValues对应相映的值数组,一一对应。android:title控制perference的文本,summary是描述性的文本。 上面代码中的 android:entries  和android:entryValues在values中进行制定,举例如下:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string-array name="days">
            <item>周一</item>
            <item>周二</item>
            <item>周三</item>
            <item>周四</item>
            <item>周五</item>
            <item>周六</item>
            <item>周日</item>        
        </string-array>  
        
        <string-array name="day_value">
            <item>1</item>
            <item>2</item>
            <item>4</item>
            <item>8</item>
            <item>16</item>
            <item>32</item>
            <item>64</item>        
        </string-array> 
    </resources>

    这样就实现了一个很简单的设置项,如果没有更进一步的要求就可以完成了。但是我们制定的这个preference在activity上的显示还比较单调,无法根据用户选中的项来更新preference的文本显示。为了达到这个目的,我们需要监听这个preference对应的onPreferenceChange事件来进行处理。具体的代码如下:

            Preference pref = findPreference("abc");
            pref.setOnPreferenceChangeListener(new OnPreferenceChangeListener(){
                @Override
                public boolean onPreferenceChange(Preference pref, Object arg1) {                
                    pref.setSummary(arg1.toString());                
                    return true;
                }            
            });

    这样就可以动态的按照用户的选择来显示不同的 Title和Summary.

  • 相关阅读:
    shell 统计行数
    sqlldr errors
    sqlldr 远程数据库
    load Properties
    查看shell 版本
    linux中的网络通信指令
    给EditText的drawableRight属性的图片设置点击事件
    p2p网贷3种运营模式
    p2p网贷3种运营模式
    linux常用的压缩与解压缩命令
  • 原文地址:https://www.cnblogs.com/kwliu/p/3426112.html
Copyright © 2020-2023  润新知