如何修改拨号盘中号码显示分隔符,由现在的空格符修改为"-"符号
时间:10-02
整理:3721RD
点击:
[DESCRIPTION]
1.在Idle界面,点击拨号图标,进入拨号界面。
2.输入一电话号码。
3.观察输入的电话号码,发现号码带空格分隔符。
期望结果:
修改空格分隔符为"-"分隔符。
[SOLUTION]
经过分析,发现拨号盘中输入的号码的空格分隔符是由如下方法(红字表示的地方)设
置了format所引起的。
Dialpadfragment.onCreateView(...){
......
PhoneNumberFormatter.setPhoneNumberFormatteringTextWatcher(getactivity(),m
Digits,mHandler);
......
}
从上述方法(红字表示的地方)进一步跟踪代码,可找到代码的修改点(红字表示的地
方)是如下文件中的如下方法:
1.php?mod=tag&id=6090" target="_blank" class="relatedlink">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;
}
1.在Idle界面,点击拨号图标,进入拨号界面。
2.输入一电话号码。
3.观察输入的电话号码,发现号码带空格分隔符。
期望结果:
修改空格分隔符为"-"分隔符。
[SOLUTION]
经过分析,发现拨号盘中输入的号码的空格分隔符是由如下方法(红字表示的地方)设
置了format所引起的。
Dialpadfragment.onCreateView(...){
......
PhoneNumberFormatter.setPhoneNumberFormatteringTextWatcher(getactivity(),m
Digits,mHandler);
......
}
从上述方法(红字表示的地方)进一步跟踪代码,可找到代码的修改点(红字表示的地
方)是如下文件中的如下方法:
1.php?mod=tag&id=6090" target="_blank" class="relatedlink">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;
}
不明觉厉