我有一个EditText,我只想允许用户通过语音输入,我想通过键盘式键盘输入来禁止输入,如下面的图片所示。
在EditText中,没有任何选项
android:inputType="voice"
然后我尝试了
editText.setEnabled(false);
此人禁用了键盘的任何输入。
然后我尝试了
editText.setFocusable(false)
它不起作用。
然后我想到了尝试如下所示的键控代码,
editText.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KEYCODE_VOICE_ASSIST){
Log.d("Debug", "Voice Search is Enabled");
editText.setEnabled(true);
return true;
} else {
editText.setEnabled(false);
return false;
}
}
});
由于我没有获取日志,因此KEYCODE_VOICE_ASSIST似乎不是识别语音输入的合适方法。
任何其他建议将不胜感激。
我的xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@color/colorWhite"
tools:context=".activity.VoiceSearchActivity">
<EditText
android:id="@+id/edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:layout_marginTop="45dp"
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:hint="@string/voice_input"
android:inputType="textNoSuggestions"
android:paddingStart="10dp"
android:textColor="@color/colorLightBlack"
android:textColorHint="@color/colorDimGray"
android:visibility="visible" />
<Button
android:id="@+id/btn_add"
android:layout_width="80dp"
android:layout_height="30dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="45dp"
android:background="@drawable/voice_add_btn"
android:text="@string/add" />
</RelativeLayout>