如何在Android中隐藏editText点击按钮?

如何在Android中隐藏editText点击按钮?,android,Android,我想在Android中单击editText时隐藏一个按钮。最初我使用以下代码 editText.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { button.setVisibility(View.INVISIBLE); } }); 但为此,我需要

我想在Android中单击editText时隐藏一个按钮。最初我使用以下代码

editText.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
               button.setVisibility(View.INVISIBLE);
            }
        });
但为此,我需要点击编辑文本两次。所以,为了避免它,我将editText焦点设置为false

android:focusable="false"
以及EditText的OnClickListener中的以下代码

   editText.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                   button.setVisibility(View.INVISIBLE);
   InputMethodManager imm = (InputMethodManager)  getActivity().getSystemService(Service.INPUT_METHOD_SERVICE);
            imm.showSoftInput(donationQuantity, 0);

                }
            });

在这种情况下,我可以通过单击editText隐藏按钮,但键盘不会弹出。

尝试使用以下代码弹出键盘:

InputMethodManager inputMethodManager=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.toggleSoftInputFromWindow(linearLayout.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0);

尝试使用以下代码弹出键盘:

InputMethodManager inputMethodManager=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.toggleSoftInputFromWindow(linearLayout.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0);

尝试使用以下代码弹出键盘:

InputMethodManager inputMethodManager=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.toggleSoftInputFromWindow(linearLayout.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0);

尝试使用以下代码弹出键盘:

InputMethodManager inputMethodManager=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.toggleSoftInputFromWindow(linearLayout.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0);

尝试改用setOnTouchListener:

    editText.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            button.setVisibility(View.INVISIBLE);
            return false;
        }
    });

尝试改用setOnTouchListener:

    editText.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            button.setVisibility(View.INVISIBLE);
            return false;
        }
    });

尝试改用setOnTouchListener:

    editText.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            button.setVisibility(View.INVISIBLE);
            return false;
        }
    });

尝试改用setOnTouchListener:

    editText.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            button.setVisibility(View.INVISIBLE);
            return false;
        }
    });

而不是onClick register for ontouch listener并侦听着地事件, 每当发生接地事件时,检查按钮是否可见

editText.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            editText.setFocusable(true);
            editText.requestFocus();
        }
        return true;

    }
});

而不是onClick register for ontouch listener并侦听着地事件, 每当发生接地事件时,检查按钮是否可见

editText.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            editText.setFocusable(true);
            editText.requestFocus();
        }
        return true;

    }
});

而不是onClick register for ontouch listener并侦听着地事件, 每当发生接地事件时,检查按钮是否可见

editText.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            editText.setFocusable(true);
            editText.requestFocus();
        }
        return true;

    }
});

而不是onClick register for ontouch listener并侦听着地事件, 每当发生接地事件时,检查按钮是否可见

editText.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            editText.setFocusable(true);
            editText.requestFocus();
        }
        return true;

    }
});

为什么不使用onFocusChangedListener,看看你是否获得焦点?为什么不使用onFocusChangedListener,看看你是否获得焦点?为什么不使用onFocusChangedListener,看看你是否获得焦点?这很有效..你能区分onClick和onTouch对于editText的区别吗?onTouch给出了MotionEvent,其中as onClick事件是一个完整的事件,包括对焦、按下和释放。它起作用。您能告诉editText的onClick和onTouch之间的区别吗?onTouch给出了MotionEvent,其中as onClick事件是一个完整的事件,包括对焦,按下并释放。它可以工作。你能告诉editText的onClick和onTouch之间的区别吗?onTouch给出了MotionEvent,其中作为onClick事件是一个完整的事件,包括聚焦,按下并释放。它可以工作。你能告诉editText的onClick和onTouch之间的区别吗?onTouch给出了MotionEvent,其中as onClick事件是一个完整的事件,包括聚焦、按下和释放。