2016-06-11 12 views
0

ユーザーが入力する携帯電話番号を確認したいと思います。私は2つのコード、すなわち+91,0などの編集テキストと、電話番号の別の編集テキストを持っています。国番号で携帯電話番号を確認してください

ユーザーが10を超える数字を入力した場合、編集テキストに数字を入力しないようにする方法があります。また、コードと番号で検証する必要があります。

私はこのコードで検証を試みました。

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(); 
      } 

しかし、数字の場合はtrueを返しません。常にfalseを返します。つまり、正しい番号を入力してください。数の

編集テキスト:

  <EditText 
       android:layout_width="30dp" 
       android:layout_height="match_parent" 
       android:ems="10" 
       android:id="@+id/editText_code" 
       android:layout_marginLeft="20dp" 
       android:background="@android:color/transparent" 
       android:hint="+91" 
       android:textSize="14sp" 
       android:phoneNumber="true" /> 


     <EditText 
       android:layout_width="match_parent" 
       android:layout_height="40dp" 
       android:hint="MOBILE NO" 
       android:singleLine="false" 
       android:layout_below="@+id/linearLayoutFirstName" 
       android:layout_toRightOf="@+id/linearLayoutFirstName" 
       android:layout_toEndOf="@+id/linearLayoutFirstName" 
       android:background="@android:color/transparent" 
       android:layout_gravity="center" 
       android:textSize="12sp" 
       android:layout_marginLeft="05dp" 
       android:id="@+id/mobileNo" 
       android:phoneNumber="true" /> 
     </LinearLayout> 

はどのようにこれを行うには?ありがとうございました。

+0

try.getText()。toString()+ " - " + mobileNo.getText()。toString() – USKMobility

+0

が試行されました。役に立たなかった#USKMobility –

答えて

0

メソッドPhoneNumberUtilsを使用して、有効な電話番号かどうかを検出してください。

+0

あなたが使っている方法があまり正しくない(適切な電話番号に有効であるとフラグを立てていない) –

0

http://www.java2s.com/Code/Jar/l/Downloadlibphonenumber41jar.htm

... ...

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フォルダに追加します。この例を試してみてください

関連する問題