如何隐藏Android上的editText点击按钮?

时间:2015-06-24 17:19:13

标签: android

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

editText.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
               button.setVisibility(View.INVISIBLE);
            }
        });

但为此我需要点击editText两次。因此,为了避免它,我将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即可隐藏按钮,但键盘不会弹出。

3 个答案:

答案 0 :(得分:2)

请尝试使用setOnTouchListener:

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

答案 1 :(得分:1)

而不是onClick注册OnTouchListener并监听TouchDown事件, 每当触地事件发生时,检查按钮可见/不可见。

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;

    }
});

答案 2 :(得分:0)

尝试使用此代码弹出键盘:

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