设置 EditText 以设置电话号码值

Posted

技术标签:

【中文标题】设置 EditText 以设置电话号码值【英文标题】:Set EditText to have phone number values set 【发布时间】:2015-04-23 21:39:11 【问题描述】:

我一直试图让我的 editText 只接受电话值以及分机号。我设法在其 xml 手机中使用。

android:inputType="phone"
android:digits="0123456789()- x"

现在我一直试图弄清楚的另一个问题是如何让 editText 显示 () - 在任何时候以及在按下更多数字时 (ooo) ooo-oooo xoooo。目前我有editText

editTextpponentTeamContactPhone.addTextChangedListener(new PhoneNumberFormattingTextWatcher() 
PhoneNumberUtils phoneNumberUtils;

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) 
            phoneNumberUtils.formatNumber(editTextpponentTeamContactPhone.getText().toString());
            super.onTextChanged(s, start, before, count);
        
    );

这接近我想要的。它变成 (xxx) xxx-xxxx 但不是扩展名,所以想知道是否有人遇到过类似我正在寻找但运气不佳的东西。

【问题讨论】:

【参考方案1】:

要将字符长度限制在TextView,您可以使用

android:maxLength="14"

或以编程方式:

textView.setFilters(new InputFilter[]  new InputFilter.LengthFilter(250) );

【讨论】:

嗯,这是我已经在做的事情,但问题不在于长度。这是关于始终显示 ( ) - 或 ( ) - x。我可以修改字符串,但我试图在 editext 中强制使用这种格式。 @AshleyAlvarado 好吧,您可以编写一个自定义 TextWatcher,它会在输入文本后监听您的编辑文本更改。当 text.isEmpty - 清理所有文本视图内容。

以上是关于设置 EditText 以设置电话号码值的主要内容,如果未能解决你的问题,请参考以下文章

android如何将EditText光标设置为其文本的末尾[复制]

如何从editText保存名称和号码并获取这些数据?

如何将字符串号码格式化为美国电话号码格式

jQuery通过验证设置电话号码的最小值和最大值

EditText电话号码格式化输入删除案例

使用电话号码格式 NaN 屏蔽 EditText,如 PhoneNumberUtils