Android Settings修改小记

1、Settings代码中大部分UI用Fragment+Preference方式呈现,如何在XML中设置点击子选项跳转到某个activity?

方案举例:

<PreferenceScreen
        android:title="@string/upgrade_by_local"
        android:summary="@string/upgrade_summary">    

<!-- 点击时 自定义一个默认跳转Intent  action -->  
<!-- action指定隐式Intent ; targetPackage和targetClass指定显示Intent--> 

  <intent  
            android:action="android.intent.action.MAIN"  
            android:targetPackage="com.android.settings"  
            android:targetClass="com.android.settings.upgrade.SystemLocalUpgradeActivity" />  
 </PreferenceScreen>


2、Settings中的编辑框使用的是EditTextPreference,此类不能像EditText一样直接添加文本控制属性,如设置输入内容长度、数据类型等,如何控制编辑框里面输入内容属性?

方案举例:设置文本内容为数字类型,且只能监听数字和".",文本长度

EditTextPreference preference = (EditTextPreference) findPreference("ip_address");                                      

 //设置输入法显示风格
        preference.getEditText().setInputType(EditorInfo.TYPE_CLASS_NUMBER);   
         

    //设置按键监听内容
        DigitsKeyListener mDigitsKeyListener = DigitsKeyListener.getInstance("0123456789.");
        preference.getEditText().setKeyListener(mDigitsKeyListener);
         

//设置内容最大长度   

        preference.getEditText().setFilters(new InputFilter[]{
                   new InputFilter.LengthFilter(20)});


PS:EditTextPreference源码中有个getEditText()方法,调用此方法返回EditText,在此基础上添加InputFilter过滤器,即可约束编辑框输入的内容

    /**
     * Returns the {@link EditText} widget that will be shown in the dialog.
     * 
     * @return The {@link EditText} widget that will be shown in the dialog.
     */
    public EditText getEditText() {
        return mEditText;
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值