立即注册
查看: 2236|回复: 1

[MTK软件原创] 如何修改拨号盘中号码显示分隔符,由现在的空格符修改为"-"符号

发表于 2016-10-19 17:00:01 | 显示全部楼层 |阅读模式 来自 广东省深圳市
[DESCRIPTION]

1.在Idle界面,点击拨号图标,进入拨号界面。
2.输入一电话号码。
3.观察输入的电话号码,发现号码带空格分隔符。
期望结果:
修改空格分隔符为"-"分隔符。


[SOLUTION]


经过分析,发现拨号盘中输入的号码的空格分隔符是由如下方法(红字表示的地方)设
置了format所引起的。
Dialpadfragment.onCreateView(...){
......
PhoneNumberFormatter.setPhoneNumberFormatteringTextWatcher(getactivity(),m
Digits,mHandler);
......
}
从上述方法(红字表示的地方)进一步跟踪代码,可找到代码的修改点(红字表示的地
方)是如下文件中的如下方法:
1.Frameworks\base\Telephony\java\Android\telephony\PhoneNumberFormattingTe
xtWatcher.java
private String reformat(CharSequence s, int cursor) {
// The index of char to the leftward of the cursor.
int curIndex = cursor - 1;
String formatted = null;
mFormatter.clear();
char lastNonSeparator = 0;
boolean hasCursor = false;
int len = s.length();
for (int i = 0; i < len; i++) {
char c = s.charAt(i);
if (PhoneNumberUtils.isNonSeparator(c)) {
if (lastNonSeparator != 0) {
formatted = getFormattedNumber(lastNonSeparator, hasCursor);
hasCursor = false;
}
lastNonSeparator = c;
}
if (i == curIndex) {
hasCursor = true;
}
}
if (lastNonSeparator != 0) {
formatted = getFormattedNumber(lastNonSeparator, hasCursor);
}
if(formatted != null) {
formatted = formatted.replace(" ", "-");//add by MTK 20130117
}
String tmpFormatted = formatted;
String tmpS = ((CharSequence)s).toString();
tmpS = tmpS.replace("-","");//add by MTK 20130117
if (tmpFormatted != null) {
tmpFormatted = tmpFormatted.replace(" ", "").replace("-", "");
if (tmpS.trim().length() > tmpFormatted.length()) {
//Log.d("reformat", "s.length() > tmpFormatted.length()");
formatted = ((CharSequence)s).toString();
}
}
return formatted;
}

发表于 2016-10-19 21:29:20 | 显示全部楼层 来自 浙江省杭州市
不明觉厉
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表