1

私のAndroidアプリでは、アプリを初めて実行するときに、ユーザーはライセンスを入力する必要があります。ライセンスの形式は次のとおりです###-XXX-###-####は数字、Xは文字です。フォーマットをヒントにしていますが、それだけでは不十分です。どうすればこのように作成でき、ユーザーは入力しません-、3文字の後に表示されますか?

アップデート :

それは私のコードであり、それは機能します:

licenseEditText.addTextChangedListener(new TextWatcher() {

            public void afterTextChanged(Editable s) {
                System.out.println("afterTextChanged");
                if (s.length() == 3) {
                    s.append("-");
                }
                if (s.length() == 7) {
                    s.append("-");
                }
                if (s.length() == 11) {
                    s.append("-");
                }
                if (s.length() == 15)
                    ok.performClick();
            }

            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {
                System.out.println("beforeTextChanged");
            }

            public void onTextChanged(CharSequence s, int start, int before,
                    int count) {
                System.out.println("onTextChanges");

            }
        });
4

3 に答える 3

3

a を設定しTextWatcher、その中にインターレッド テキストを a と比較しますregularExpression。最初の 3 文字の後に、intered characterSet に「-」を追加するなどの他のコードを追加します。

于 2011-11-28T08:44:06.683 に答える
1

4 つの EditText を使用してそれらに textwather を添付できます - Windows のようなライセンス入力

于 2011-11-28T08:55:12.207 に答える
0

% 演算子を使用してみてください

if( s.length() == 15) {
   // s.length() = 15
} else if( s.length() % 4 == 3) {
   // s.length = {3, 7, 11, 19, ....}
   // so s.length != 15
}

このようにして、コードの重複が少なくなります。詳細については、Wikipedia - モジュロ演算を確認してください。

于 2014-01-27T12:08:10.087 に答える