如何在android中使用dialerkeylistener

如何在android中使用dialerkeylistener,android,Android,我想设置电话号码223-233-3334的格式,以便用户在键盘上键入时编辑文本。我知道我必须使用dialerkeylistener和textfilter。有人能给出如何在android中使用dialerkeylistener设置格式的示例吗 感谢非NANP(http://www.howtocallabroad.com/nanp.html)要在用户键入时实现电话号码格式设置,您可以使用以下解决方法: yourEditText.addTextChangedListener(new TextWatch

我想设置电话号码223-233-3334的格式,以便用户在键盘上键入时编辑文本。我知道我必须使用dialerkeylistener和textfilter。有人能给出如何在android中使用dialerkeylistener设置格式的示例吗

感谢非NANP(http://www.howtocallabroad.com/nanp.html)要在用户键入时实现电话号码格式设置,您可以使用以下解决方法:

yourEditText.addTextChangedListener(new TextWatcher() {
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

                String typedNum = yourEditText.getText().toString();
                if(typedNum.length() == 3)
                {
                    yourEditText.setText(typedNum + "-");
                yourEditText.setSelection(4);
                }
                else if(typedNum.length() == 7)
                {
                    yourEditText.setText(typedNum + "-");
                    yourEditText.setSelection(8);
                }

            }
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {
            }
            @Override
            public void afterTextChanged(Editable s) {
            }
        });
否则,解决方案可以是:

import android.telephony.PhoneNumberFormattingTextWatcher;
OnCreate:

yourEditText.addTextChangedListener(new PhoneNumberFormattingTextWatcher());
PhoneNumberUtils.formatNumber(Editable text, int defaultFormattingType);  
如果您希望在用户输入电话号码后设置号码格式:

  import android.telephony.PhoneNumberUtils;
OnCreate:

yourEditText.addTextChangedListener(new PhoneNumberFormattingTextWatcher());
PhoneNumberUtils.formatNumber(Editable text, int defaultFormattingType);  

sharma在emulator中工作,但在设备中不工作,如果设备在indiaPlease中设置电话,请参见编辑的答案。我已经为你的要求做了一个变通办法。我希望它能帮助你。对不起,你读过这个问题的标题了吗?我认为你的答案不是预期的。