现在我有一个EditText
TextWatcher
,它将用户输入格式化为手机。例如,如果用户输入为89011234567
,则其格式为+7 (901) 123-45-67
。
我想知道有没有办法可以扩展或实现像CharSequence
或Editable
或其他任何类似的类来使EditText
显示格式化输出,但是当我打电话时mEditText.getText().toString()
它会返回原始用户输入吗?
答案 0 :(得分:1)
您可以创建一个扩展标准EditText的类,然后覆盖getText()
方法以返回您需要的内容。
public class MyEditText extends EditText {
//Implement the methods that need implementation. Calling the method in the super class should do the trick
@Override
public Editable getText() {
//return an Editable with the required text.
}
}
然后你只需使用MyEditText
而不是普通的EditText。
如果您不使用其他地方的getText()
- 方法(例如TextWatcher),此解决方案将有效。
答案 1 :(得分:0)
您可以将用户的输入存储到edittext的tag属性中,这样您就可以访问它,并且不会通过使用setText来显示格式化的数字来修改它!