有一个Android应用程序包含自制输入字段(没有TextView
或EditText
元素),因此我必须显示/隐藏键盘,处理用户输入并自行显示输入的符号。
我需要为标准视图禁用预测文本模式。不幸的是,Android View
类(android.view.View)没有函数setInputType
。
有一个可能的解决方案。获取给定视图的InputConnection
并更改其属性。但我无法找到如何获取和设置当前InputConnection
的实例,遗憾的是,函数onCreateInputConnection
也未被调用。
是否有任何方法可以禁用标准视图的预测文本模式?
答案 0 :(得分:5)
我用过的东西是下面的 - 特别是标签“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">
答案 1 :(得分: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(不确定这是否有效)。这应该可以让您非常接近您的解决方案。