4

経由してみましTextWatcherafterTextChangedEditTextユーザーが制限に達した後に文字を挿入しようとすると、トーストメッセージを表示するか、エラーを設定するだけです。可能だと思います。しかし、これを達成する方法がわかりません。

アップデート

私のEditTextコーディングは

<EditText
        android:id="@+id/editText1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:maxLength="10"
        android:layout_marginTop="150dp"
        android:inputType="numberDecimal" >

ここで、ユーザーが10桁以上入力しようとした場合にトーストを表示したり、エラーを設定したりします。

アップデート

 editText1.setOnKeyListener(new OnKeyListener() {

        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (editText1.getText().length() >= 10)
                Toast.makeText(getApplicationContext(), "hi",
                        Toast.LENGTH_SHORT).show();
            return false;
        }
    });
4

5 に答える 5

1

On key listener は Soft Input Keyboard では動作しません.. Android リファレンスから:

http://developer.android.com/reference/android/view/View.OnKeyListener.html

View.OnKeyListener

クラスの概要 ハードウェア キー イベントがこのビューにディスパッチされたときに呼び出されるコールバックのインターフェイス定義。コールバックは、キー イベントがビューに与えられる前に呼び出されます。これは、ハードウェア キーボードでのみ役立ちます。ソフトウェアの入力メソッドには、このリスナーをトリガーする義務はありません。

つまり、TextWatcher は、編集ボックスとキーボード入力を備えた唯一の友達です。

于 2013-11-06T10:00:13.280 に答える
0

これで maxLength を取得できeditTextます。次に、keyListener を実装します。

 int maxLength = //getMaxLenght here;
    editText.setOnKeyListener(new OnKeyListener() {
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if(editText.getText().toString().length()>= maxLength) {
                //Show toast here
            }
            return false;
        }
    });
于 2013-06-10T16:46:20.790 に答える