0

现在我有了一个EditTextTextWatcher用户输入格式设置为电话的格式。例如,如果用户输入是89011234567,它将被格式化为+7 (901) 123-45-67.

我想知道有什么方法可以扩展或实现一些类似CharSequenceEditable类似的类来EditText显示格式化输出,但是当我调用mEditText.getText().toString()它时会返回原始用户输入?

4

2 回答 2

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()-method 其他地方(例如您的 TextWatcher),此解决方案将起作用。

于 2011-09-30T08:36:01.437 回答
0

您可以将用户的输入存储到您的 edittext 的 tag 属性中,这样您就可以访问它并且不会通过使用 setText 来修改它来显示格式化的数字!

于 2011-09-30T08:31:09.863 回答