Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 单击EditText时,如何隐藏键盘以防显示_Android_Android Edittext_Android Widget_Listener - Fatal编程技术网

Android 单击EditText时,如何隐藏键盘以防显示

Android 单击EditText时,如何隐藏键盘以防显示,android,android-edittext,android-widget,listener,Android,Android Edittext,Android Widget,Listener,我有多个文本视图和一个编辑文本小部件 这是我的问题: 在我的应用程序启动后,当我点击编辑文本时,它会显示在键盘上。我已经设置了一个执行某些操作的onTouchListener,它工作正常 但是,在我的textView onClick listener中,每当我单击EditText小部件下面的任何textView时,我都会将EditText focusable设置为false。这可以正常工作,但键盘不会消失 那么,在文本视图onClicklistener中将focusable()设置为false之

我有多个文本视图和一个编辑文本小部件

这是我的问题: 在我的应用程序启动后,当我点击编辑文本时,它会显示在键盘上。我已经设置了一个执行某些操作的onTouchListener,它工作正常

但是,在我的textView onClick listener中,每当我单击EditText小部件下面的任何textView时,我都会将EditText focusable设置为false。这可以正常工作,但键盘不会消失

那么,在文本视图onClicklistener中将focusable()设置为false之后,如何隐藏键盘呢

我不打算禁用键盘,这是我想要的;单击显示键盘的EditText后,如果我单击下面的textView,我希望EditText的setFocusable设置为false(正在工作)并隐藏键盘(我不知道如何实现)

这是我的密码

public class FacilityScreen extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_facilty_screen);

    EditText editText = (EditText) findViewById(R.id.enter_location);
    editText.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            view.setFocusable(true);
            view.setFocusableInTouchMode(true);

            if (MotionEvent.ACTION_UP == motionEvent.getAction()) {

                    TextView textView = (TextView) findViewById(R.id.enter_location);
                    textView.setBackgroundColor(Color.TRANSPARENT);
                }
            }
            return false;
        }
    });

}

public void text_view(View view) {
    EditText editText = (EditText) findViewById(R.id.enter_location);
    editText.setFocusable(false);

        TextView textView = (TextView) findViewById(R.id.my_text);
        textView.setBackgroundColor(Color.parseColor("#3F51B5"));
}

之后将此添加到您的方法中

editText.setFocusable(false);
editText.clearFocus();
如果不起作用,请使用下面的方法关闭键盘

 public static void dismissKeyboard(EditText editText, Context context) {
        InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
    }
希望这有帮助