达内潍坊中心 > 达内新闻
Android Settings修改小记
- 发布:互联网
- 来源:互联网
- 时间:2017-09-27 12:24
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;
}
更多潍坊达内相关资讯,请扫描下方二维码
最新开班时间
- 北京
- 上海
- 广州
- 深圳
- 南京
- 成都
- 武汉
- 西安
- 青岛
- 天津
- 杭州
- 重庆
- 哈尔滨
- 济南
- 沈阳
- 合肥
- 郑州
- 长春
- 苏州
- 长沙
- 昆明
- 太原
- 无锡
- 石家庄
- 南宁
- 佛山
- 珠海
- 宁波
- 保定
- 呼和浩特
- 洛阳
- 烟台
- 运城
- 潍坊
Android Settings修改小记
- 发布:互联网
- 来源:互联网
- 时间:2017-09-27 12:24
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;
}
更多潍坊达内相关资讯,请扫描下方二维码
最新开班时间
- 北京
- 上海
- 广州
- 深圳
- 南京
- 成都
- 武汉
- 西安
- 青岛
- 天津
- 杭州
- 重庆
- 厦门
- 哈尔滨
- 济南
- 福州
- 沈阳
- 合肥
- 郑州
- 长春
- 苏州
- 大连
- 长沙
- 昆明
- 温州
- 太原
- 南昌
- 无锡
- 石家庄
- 南宁
- 中山
- 兰州
- 佛山
- 珠海
- 宁波
- 贵阳
- 保定
- 呼和浩特
- 东莞
- 洛阳
- 潍坊
- 烟台
- 运城