Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.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
Java 需要软键盘输入TextView,但我没有';我不希望输入字段出现在屏幕上_Java_Android_User Interface - Fatal编程技术网

Java 需要软键盘输入TextView,但我没有';我不希望输入字段出现在屏幕上

Java 需要软键盘输入TextView,但我没有';我不希望输入字段出现在屏幕上,java,android,user-interface,Java,Android,User Interface,我能够在Android上打开和关闭软键盘,并接受文本视图的文本输入。一切正常。问题是,我不想看到键盘上方占据整个屏幕的文本输入字段。我已将TextView的输入类型设置为InputType.type_NULL,这会隐藏文本字段并仅显示键盘,但当我这样做时,它不接受键盘的输入: //doesn't show text field above soft //keyboard, but also doesn't take input tview.setInputType(InputType.TY

我能够在Android上打开和关闭软键盘,并接受文本视图的文本输入。一切正常。问题是,我不想看到键盘上方占据整个屏幕的文本输入字段。我已将TextView的输入类型设置为InputType.type_NULL,这会隐藏文本字段并仅显示键盘,但当我这样做时,它不接受键盘的输入:

 //doesn't show text field above soft
 //keyboard, but also doesn't take input
 tview.setInputType(InputType.TYPE_NULL);
我似乎不知道如何禁用文本字段。我只想要键盘,因为我需要在用户键入时在UI中显示内容,而文本输入框不覆盖整个屏幕

更新:原来我可以直接将软键输入发送到非文本视图。换句话说,可以将软键输入发送到视图的任何子类,并且它不需要专门处理文本或文本编辑。这个答案解释了这一点:

我修改了onCreateInputConnection(它是View类的一部分)来执行以下操作:

@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
    //Log.d(TAG, "onCreateInputConnection");
    BaseInputConnection b = new BaseInputConnection(this, false);
    outAttrs.actionLabel = null;
    outAttrs.inputType = InputType.TYPE_NULL;
    outAttrs.imeOptions = EditorInfo.IME_FLAG_FORCE_ASCII|EditorInfo.IME_FLAG_NO_FULLSCREEN|EditorInfo.IME_FLAG_NO_EXTRACT_UI;
    return b;
}
EditorInfo.IME_FLAG_NO_全屏| EditorInfo.IME_FLAG_NO_EXTRACT_UI标志隐藏了用软键盘显示的文本编辑框,防止其覆盖屏幕。主视图现在使用公共布尔onKey(视图v、int-keyCode、KeyEvent-event)从软键盘接收按键事件。

试试这个

tview.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
tview.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

检查这里:你能试试这个吗?
tview.setInputType(InputType.TYPE\u TEXT\u FLAG\u NO\u建议)