繁体   English   中英

如何以编程方式禁用预测文本(没有EditText)

[英]How to programmatically disable predictive text (with no EditText)

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

我需要禁用标准视图的预测文本模式。 不幸的是,Android View类(android.view.View)没有函数setInputType

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

是否有任何方法可以禁用标准视图的预测文本模式?

我用过的东西是下面 - 特别是标签“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)显示键盘:

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(不确定这是否有效)。 这应该可以让您非常接近您的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM