我想验证用户输入的手机号码。我有两个编辑文本,一个用于代码,即+ 91,0等,另一个用于电话号码。
我有一个问题,即如果用户输入的数字超过10个,如何停止在编辑文本中输入数字。它也应该通过代码和数字进行验证。
我尝试使用此代码进行验证。
new Gson().toJson(user, ModelSendFilters.class)
但是这个数字并不是真的。始终返回false,即请输入正确的数字。
编辑数字文本:
private boolean isValidMobile(String phone)
{
return android.util.Patterns.PHONE.matcher(phone).matches();
}
else if (!isValidMobile(code.getText().toString()+mobileNo.getText().toString()))
{
Toast.makeText(RegisterActivity.this,"Please enter correct Mobile No.",Toast.LENGTH_LONG).show();
}
怎么做?谢谢。
答案 0 :(得分:0)
尝试使用isGlobalPhoneNumber()
PhoneNumberUtils
方法检测某个号码是否为有效电话号码。
答案 1 :(得分:0)
试试这个例子......
activity_main.xml中
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<EditText
android:id="@+id/edtCountryCode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="phone"
android:hint="country_code"/>
<EditText
android:id="@+id/edtPhoneNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/edtCountryCode"
android:inputType="phone"
android:hint="phone_no"/>
<TextView
android:id="@+id/tvIsValidPhone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/edtPhoneNumber"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"/>
<Button
android:id="@+id/btnValidate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tvIsValidPhone"
android:text="validate"/>
</RelativeLayout>
MainActivity.java
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.util.Patterns;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.google.i18n.phonenumbers.NumberParseException;
import com.google.i18n.phonenumbers.PhoneNumberUtil;
import com.google.i18n.phonenumbers.Phonenumber;
public class MainActivity extends AppCompatActivity {
TextView tvIsValidPhone;
EditText edtPhone;
EditText edtCountryCode;
Button btnValidate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvIsValidPhone = (TextView) findViewById(R.id.tvIsValidPhone);
edtCountryCode = (EditText) findViewById(R.id.edtCountryCode);
edtPhone = (EditText) findViewById(R.id.edtPhoneNumber);
btnValidate = (Button) findViewById(R.id.btnValidate);
btnValidate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String countryCode = edtCountryCode.getText().toString().trim();
String phoneNumber = edtPhone.getText().toString().trim();
if(countryCode.length() > 0 && phoneNumber.length() > 0){
if(isValidPhoneNumber(phoneNumber)){
boolean status = validateUsing_libphonenumber(countryCode, phoneNumber);
if(status){
tvIsValidPhone.setText("Valid Phone Number (libphonenumber)");
} else {
tvIsValidPhone.setText("Invalid Phone Number (libphonenumber)");
}
}
else {
tvIsValidPhone.setText("Invalid Phone Number (isValidPhoneNumber)");
}
} else {
Toast.makeText(getApplicationContext(), "Country Code and Phone Number is required", Toast.LENGTH_SHORT).show();
}
}
});
}
private boolean isValidPhoneNumber(CharSequence phoneNumber) {
if (!TextUtils.isEmpty(phoneNumber)) {
return Patterns.PHONE.matcher(phoneNumber).matches();
}
return false;
}
private boolean validateUsing_libphonenumber(String countryCode, String phNumber) {
PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
String isoCode = phoneNumberUtil.getRegionCodeForCountryCode(Integer.parseInt(countryCode));
Phonenumber.PhoneNumber phoneNumber = null;
try {
//phoneNumber = phoneNumberUtil.parse(phNumber, "IN"); //if you want to pass region code
phoneNumber = phoneNumberUtil.parse(phNumber, isoCode);
} catch (NumberParseException e) {
System.err.println(e);
}
boolean isValid = phoneNumberUtil.isValidNumber(phoneNumber);
if (isValid) {
String internationalFormat = phoneNumberUtil.format(phoneNumber, PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL);
Toast.makeText(this, "Phone Number is Valid " + internationalFormat, Toast.LENGTH_LONG).show();
return true;
} else {
Toast.makeText(this, "Phone Number is Invalid " + phoneNumber, Toast.LENGTH_LONG).show();
return false;
}
}}
下载jar文件并从下面的链接添加libs文件夹.. http://www.java2s.com/Code/Jar/l/Downloadlibphonenumber41jar.htm