我有一个将meters
转换为centimeters
的应用,简单,对吧?
所以我有两个部分。一个是键盘,另一个是两个edittext
框。
我正在使用自己的键盘,因此没有任何意义可以让Android键盘显示出来。
我查看了各种答案,但它们似乎对我不起作用。
This 问题同样问题,我实现了选择的答案,但是edittexts表现得很奇怪。
第一个似乎工作,因为我希望它工作,但不知何故其他文本将不会成为焦点。
我尝试点击它并没有任何反应。焦点不会从第一个开始。
我尝试了什么
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);
}
}
这根本不起作用,就像它不会隐藏键盘,但我上面见到的那种奇怪的行为现在不会发生。
答案 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.
这里