EditText格式

时间:2011-09-30 08:27:14

标签: android android-edittext textwatcher

现在我有一个EditText TextWatcher,它将用户输入格式化为手机。例如,如果用户输入为89011234567,则其格式为+7 (901) 123-45-67

我想知道有没有办法可以扩展或实现像CharSequenceEditable或其他任何类似的类来使EditText显示格式化输出,但是当我打电话时mEditText.getText().toString()它会返回原始用户输入吗?

2 个答案:

答案 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来显示格式化的数字来修改它!