0
我已經在佈局XML定義這樣一個EditText:PhoneNumberUtils.isGlobalPhoneNumber不返回正確的結果
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="phone"
android:ems="10"
android:id="@+id/enter_phone_field"
android:layout_below="@id/enter_name_field"
android:layout_alignRight="@id/destination_value_label"
android:layout_alignEnd="@id/destination_value_label" />
我已經實現了OnFocusChangeListener這樣的:
enterPhoneNumber = (EditText)findViewById(R.id.enter_phone_field);
// phone number lost focus listener
enterPhoneNumber.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus){
if (PhoneNumberUtils.isGlobalPhoneNumber(enterPhoneNumber.getText().toString())){
//valid phone number detected
Log.i("PhoneNumberValidated", enterPhoneNumber.getText().toString());
}
else {
enterPhoneNumber.setError("Please enter valid phone number");
}
}
}
});
我試着在enterPhoneNumber字段中輸入34
,當我由於某些原因而被淘汰出局時,並沒有顯示錯誤。
任何想法?
你需要它是全球性的電話號碼的方法? – Stanojkovic
@Stanojkovic有沒有其他的選擇?基本上我試圖驗證印度的電話號碼,可能沒有國家代碼作爲前綴的號碼,沒有國家代碼,其長度爲10位 – Devarshi
這是我如何解決這個問題:String regexStr =「^ [+] [0-9 ] {11,12} $「; if(!number.matches(regexStr)){在這裏做你的東西,AlertDialog或一些警告},你只需要改變你想檢查的數字。 – Stanojkovic