8

有一个包含自制输入字段(无TextViewEditText元素)的 Android 应用程序,因此我必须自己显示/隐藏键盘、处理用户输入并显示输入的符号。

我需要为标准视图禁用预测文本模式。不幸的是 AndroidView类 (android.view.View) 没有功能setInputType

有一个可能的解决方案。获取InputConnection给定视图并更改其属性。但是我找不到如何获取和设置 current 的实例InputConnection,不幸onCreateInputConnection的是也没有调用函数。

有什么方法可以禁用标准视图的预测文本模式吗?

4

2 回答 2

8

我用过的东西在下面——特别是我认为对你有用的标签“textNoSuggestions”!

<EditText android:layout_marginLeft="10px" 
android:layout_width="fill_parent"
android:layout_height="wrap_content" 
android:layout_marginRight="10px"
android:id="@+id/setupactivity_ftpsite" 
android:inputType="textNoSuggestions|textUri">
于 2013-04-30T13:43:56.190 回答
2

对不起,这里以更简洁的方式回答!

与此类似的东西:

1)显示键盘:

InputMethodManager imm =  (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(myCustomView, InputMethodManager.SHOW_IMPLICIT);

2)在myCustomView(扩展视图)中,添加:

 InputConnection onCreateInputConnection (EditorInfo outAttrs) {
     InputConnection ic = new EditableInputConnection(this);
     outAttrs.inputType = TYPE_TEXT_FLAG_NO_SUGGESTIONS;
     outAttrs.initialCapsMode = ic.getCursorCapsMode(outAttrs.inputType); //guess on this
     return ic;
}

这是应该做什么的总体要点。您可能想要 OR outAttrs.inputType 而不是设置为相等,以便保留默认状态,或者先调用父级 onCreateInputConnection 然后设置您的 outAttrs.inputType (不确定这是否有效)。这应该有希望让您非常接近您的解决方案。

于 2013-05-08T21:02:46.113 回答