如何在多个EditTexts上禁用键盘

时间:2017-12-02 17:43:01

标签: android

我有一个将meters转换为centimeters的应用,简单,对吧?

所以我有两个部分。一个是键盘,另一个是两个edittext框。

我正在使用自己的键盘,因此没有任何意义可以让Android键盘显示出来。

我查看了各种答案,但它们似乎对我不起作用。

This 问题同样问题,我实现了选择的答案,但是edittexts表现得很奇怪。

enter image description here

第一个似乎工作,因为我希望它工作,但不知何故其他文本将不会成为焦点。

我尝试点击它并没有任何反应。焦点不会从第一个开始。

我尝试了什么

    findViewById(R.id.lengthConverterSecond).setOnTouchListener(this);
    findViewById(R.id.lengthConverterFirst).setOnTouchListener(this);
@Override
    public boolean onTouch(View view, MotionEvent motionEvent) {
        return true;
    }

这种奇怪的行为是怎么回事?

我上述问题的解决方案是什么?

更新

尝试过这个。

以防万一

findViewById(R.id.lengthConverterSecond).setOnFocusChangeListener(this);         findViewById(R.id.lengthConverterFirst).setOnFocusChangeListener(this);
    @Override
        public void onFocusChange(View view, boolean b) {
            if(b){
                InputMethodManager im=(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                assert im != null;
                im.hideSoftInputFromWindow(view.getWindowToken(),0);
            }
        }

这根本不起作用,就像它不会隐藏键盘,但我上面见到的那种奇怪的行为现在不会发生。

1 个答案:

答案 0 :(得分:3)

表示minSdk = 8且maxSdk = 23

 <EditText
    android:id="@+id/editText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:focusable="false"
    android:focusableInTouchMode="false"/>

适用于API 21或&gt; 21

如果您有两个编辑文本(假设为editText1和editText2),并且您想使用自己的自定义键盘,请使用此解决方案。

 EditText editText1 = findViewById(R.id.editText1);
 EditText editText2 = findViewById(R.id.editText2);

 editText1.setShowSoftInputOnFocus(false);  // add this if you dont want default keyboard when you tap on editText1.

 editText2.setShowSoftInputOnFocus(false);// add this if you dont want default keyboard when you tap on editText2.

这里