1

私は1つの(と思われる)小さなことに対処しようとしています。私のアプリには、2 つのEditTextフィールドを持つ 1 つのアクティビティがあります。

1つは通常のフィールド(etNormal)で、もう1つはボタンのように動作する(etButton)ので、タッチするとキーボードは表示されず、代わりにスライドドロワーが開きます。スライド ドロワーが開いているときに押すと、通常の edittext スライド ドロワーが非表示になります。

etButtonがクリック/タッチされた場合はスライドドロワーを開き、そうでない場合は閉じますOnClickListenerOnTouchListener

結果は奇妙でした。OnTouchListener テストのときはトグルに似ていたので、押すと 1 つの引き出しが開き、別の引き出しが閉じます。OnClickListener に関しては、アクションを実行するために各編集テキストを 2 回押す必要がありました。

そして、私が使用しているetButtonでキーボードを非表示にしsetInputType(InputType.TYPE_NULL);ます。私も試してみましsetEnabled(false);たが、クリック/タッチすることさえできませんでした。現在使用されているメソッドの 1 つの欠点は、クリックを etNormal から etButton に変更したときに、キーボードがまだ表示され、非表示にならないことです。

それで、誰かが私の目標を達成するために何ができるか教えてもらえますか?

編集:

現在の提案を消去し、コードを少し変更しましたが、まだ機能していません。

これは、OnTouchListener を割り当てている部分です。

OnTouchListener touchListener = new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent ev) {
                if(v==etButton && ev.getAction()==MotionEvent.ACTION_DOWN) {
                    slidingDrawer.animateOpen();
                }else {
                    slidingDrawer.animateClose();
                }
                return false;
            }
        };

        etNormal1.setOnTouchListener(touchListener);
        etNormal2.setOnTouchListener(touchListener);
        etButton.setOnTouchListener(touchListener);

また、XMLレイアウトファイルのetButton宣言には次のものがあります。

android:focusable="false"

しかし今、etButton タッチでは何も起こりません (スライド ドロワーが開いている場合のみ非表示になります)。

ここで何が問題なのですか?

4

6 に答える 6

6

そのように動作するeditTextを手に入れました

android:focusable="false"
android:clickable="true"

次に、アクションをオーバーライドする OnClickListener

于 2013-11-04T10:27:01.813 に答える