1

だから私はいくつかのことを自動的に行うeditTextを持ちたくない。

まず、挿入として数字のみを許可する必要があるということです。

2番目の、そして私の意見では、ユーザーがたとえば5つの数字を挿入すると、いくつかの記号が追加されると思います。たとえば、私は次のように書いています。

    12345

次に、プログラムは記号を追加する必要があります

    12345-

そして今、私はもっとタイプすることができます。

    12345-6789

EditTextで事前定義されたテキストをグーグルで検索していましたが、何も役に立ちませんでした...

4

3 に答える 3

2

android:inputType="number"1) xmlで追加

2)の場合-android:maxLength="5"xmlで区切られた2つの異なる編集テキストを作成し、後で値を結合することができます

確かにもっと良い方法があるはずですが(2)

于 2012-09-11T12:50:56.897 に答える
0

2)確認できませんでしたonKeyDown (int keyCode, KeyEvent event)か?

したがって、ユーザーがボタンを押すと、この関数を使用してエディットテキストの長さを計算し、長さが5の場合は、必要な文字を挿入します。

ちょうどメモとして、私はそれを数字だけとして定義するときに編集テキストに「-」記号を挿入しようとはしていません。

于 2012-09-11T13:01:43.553 に答える
0

だから私はフィリップコメントの解決策を見つけました。そのためにはフィルターを使用する必要があります。私のコードはこれになりました:

   InputFilter filter = new InputFilter() {

        @Override
        public CharSequence filter(CharSequence source, int start, int end,
                Spanned dest, int dstart, int dend) {

            if(end==0){
                if(is_minus){jis_minus=false;}
                else number--;
            }
            for (int i = start; i < end; i++) { 

                if (!Character.isDigit(source.charAt(i))) { 
                    return "";
                } 
                else{
                    number++;
                }
                if(number==5)
                    {
                    is_minus=true;
                    return (source.charAt(i)+"-");
                    }

        } 
        return null; 
        }
};

その後、必要なテキストボックスにフィルターを追加します...

于 2012-09-11T14:18:52.583 に答える