2

私はアンドロイドに取り組んでいます。私のアプリでは、ユーザーは edittext に電話番号を入力して登録します。この電話番号はデータベースに保存されます。ユーザーがアプリにログインすると、携帯電話から連絡先のリストを取得し、それをこのアプリに登録している人と比較しています。連絡先リストの番号がデータベースの番号と一致する場合、それらの番号をリストビューに表示する必要があります。ここでの問題は、ユーザーが連絡先の前に +91 または 0 で自分の番号を保存すると、データベース内の番号が連絡先と一致しないことです。その時点で数字は表示されません。

この問題については、編集テキストに数字を入力する前に警告を保持する必要がありますか? たとえば、私が与えた編集テキストでは、Ph no: 8923458128 をデータベースに保存しました。今、私はこの番号と私の連絡先リストでログインしました

  1. 9823484586
  2. +919988334856

上記の2つの数字がデータベースに保存されているとしましょう。しかし、2 回目の連絡では、ユーザーは +91 なしで 9988334856 と入力しました。次に、2番目の番号がデータベース番号と一致しないため、最後にリストビューに2つの番号ではなく1つの番号のみが表示されます。

この問題を解決するにはどうすればよいですか? この点で私を助けてください。

4

7 に答える 7

1

この 2 行を XML ファイルのその電話番号編集テキスト フィールドに挿入します。

android:inputType="numberDecimal"
android:maxLength="10"

その場合、彼は 10 個を超える数字を入力できず、彼だけが数字を入力する必要があります。もう 1 つのテキスト フィールドで国コードを取得し、それで検証できます。

于 2013-10-29T05:18:39.220 に答える
1

携帯電話番号の検証用に、Android は InBuiltパターンを提供します。ただし、API レベル 8 以上でのみ機能します。1 行以下のコードを試してください。

 /* method for phone number validation */
private Boolean Number_Validate(String number)
{              
    return  !TextUtils.isEmpty(number) && (number.length()==10) && android.util.Patterns.PHONE.matcher(number).matches();
}

パラメータに数値を渡すことでこのメソッドを呼び出すことができ、true または false を返します。

Number_Validate(number);

あなたの答えが得られることを願っています。ありがとう。

于 2017-02-01T04:37:50.407 に答える
0

これを試して

final String mobile = emobile.getText().toString();
    if (!isValidMobile(mobile)){
        emobile.setError("Invalid Mobile");
    }

private boolean isValidMobile(String mobile) {
    if (!TextUtils.isEmpty(mobile)) {
        return Patterns.PHONE.matcher(mobile).matches();
    }
    return false;
}
于 2015-03-24T13:12:41.437 に答える
0

プライベート ブール phvalidator(文字列 ph2) {

    // TODO Auto-generated method stub
     String expression = "^[0-9-1+]{10,15}$";
       CharSequence inputStr = ph;
       Pattern pattern = Pattern.compile(expression,Pattern.CASE_INSENSITIVE);
       Matcher matcher = pattern.matcher(inputStr);
       return (matcher.matches())? true : false;
于 2014-11-11T06:11:28.683 に答える