Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何设置PhoneNumberFormattingTextWatcher';kitkat的地区是什么?_Android_Android 4.4 Kitkat - Fatal编程技术网

Android 如何设置PhoneNumberFormattingTextWatcher';kitkat的地区是什么?

Android 如何设置PhoneNumberFormattingTextWatcher';kitkat的地区是什么?,android,android-4.4-kitkat,Android,Android 4.4 Kitkat,我想设置PhoneNumberFormattingTextWatcher的区域设置 但在kitkat中,不能使用PhoneNumberFormattingTextWatcher(字符串countryCode)构造函数 所以我尝试使用反射。像这样 phoneNumberFormattingTextWatcher = new phoneNumberFormattingTextWatcher(); Field mFormatter = PhoneNumberFormattingTextWatcher

我想设置PhoneNumberFormattingTextWatcher的区域设置

但在kitkat中,不能使用PhoneNumberFormattingTextWatcher(字符串countryCode)构造函数

所以我尝试使用反射。像这样

phoneNumberFormattingTextWatcher = new phoneNumberFormattingTextWatcher();

Field mFormatter = PhoneNumberFormattingTextWatcher.class.getDeclaredField("mFormatter");
mFormatter.setAccessible(true);

mFormatter.set(phoneNumberFormattingTextWatcher, 
PhoneNumberUtil.getInstance().getAsYouTypeFormatter(COUNTRY_ISO));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            mPhoneText.addTextChangedListener(new PhoneNumberFormattingTextWatcher("US"));
        }else {
            mPhoneText.addTextChangedListener(new PhoneNumberFormattingTextWatcher());
        }
但是mFormatter.set()方法抛出IllegalArgumentException

我怎样才能修好它


编译'com.googlecode.libphonenumber:libphonenumber:7.2.2'


build.gradle(应用程序)

电话号码FormattingTextWatcher的mFormatter是
但是我注入了com.google.i18n.phonenumbers.asyutypeformatter类的实例。T T

电话号码格式文本观察者的M格式是
但是我注入了com.google.i18n.phonenumbers.asyutypeformatter类的实例。T T

mPhoneText.addTextChangedListener(新电话号码格式为TextWatcher())

这不适用于21或更高版本的api。所以您应该像这样包装在api lvl条件中

phoneNumberFormattingTextWatcher = new phoneNumberFormattingTextWatcher();

Field mFormatter = PhoneNumberFormattingTextWatcher.class.getDeclaredField("mFormatter");
mFormatter.setAccessible(true);

mFormatter.set(phoneNumberFormattingTextWatcher, 
PhoneNumberUtil.getInstance().getAsYouTypeFormatter(COUNTRY_ISO));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            mPhoneText.addTextChangedListener(new PhoneNumberFormattingTextWatcher("US"));
        }else {
            mPhoneText.addTextChangedListener(new PhoneNumberFormattingTextWatcher());
        }
不要忘记设置
inputType=“phone”


这是您只能为更高的API设置语言环境的方式。

mPhoneText.addTextChangedListener(新的PhoneNumberFormattingTextWatcher())

这不适用于21或更高版本的api。所以您应该像这样包装在api lvl条件中

phoneNumberFormattingTextWatcher = new phoneNumberFormattingTextWatcher();

Field mFormatter = PhoneNumberFormattingTextWatcher.class.getDeclaredField("mFormatter");
mFormatter.setAccessible(true);

mFormatter.set(phoneNumberFormattingTextWatcher, 
PhoneNumberUtil.getInstance().getAsYouTypeFormatter(COUNTRY_ISO));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            mPhoneText.addTextChangedListener(new PhoneNumberFormattingTextWatcher("US"));
        }else {
            mPhoneText.addTextChangedListener(new PhoneNumberFormattingTextWatcher());
        }
不要忘记设置
inputType=“phone”


这就是您可以仅为更高的API设置语言环境的方式。

看起来更容易访问接受该
字符串的隐藏构造函数:不知道为什么它会被隐藏。访问隐藏构造函数。。那是个好主意。我试试看!看起来更容易访问接受该
字符串的隐藏构造函数:不知道它为什么会隐藏。访问隐藏构造函数。。那是个好主意。我试试看!我想在其他情况下使用PhoneNumberFormattingTextWatcher(“US”)(在棒棒糖下)。我已经用过(Build.VERSION.SDK\u INT>=Build.VERSION\u CODES.LOLLIPOP)这个例子了。。低版本是不可能的。。但你们可以使用不同的库,我想在其他情况下使用PhoneNumberFormattingTextWatcher(“US”)(在棒棒糖下)。我已经用过(Build.VERSION.SDK\u INT>=Build.VERSION\u CODES.LOLLIPOP)这个例子了。。低版本是不可能的。。但是你可以使用不同的库来实现这一点。