0

我一直在尝试创建一个打开单词建议的文本编辑器。这就是我一直在做的希望让它工作但到目前为止还没有这样的运气

EditText test = (EditText) new EditText(Page.this);
test.setRawInputType(InputType.TYPE_TEXT_FLAG_AUTO_CORRECT);
test.setRawInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
test.setRawInputType(InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1);
params.setMargins(5, 0, 5, 0);

test.setLayoutParams(params);
test.setText(text);
test.setId(id);
holder.addView(test);

持有人是容器。Edittext 从该数据库中加载了文本,但我认为这并不重要。一切正常。EditText 加载并且数据库内容很好,这就是我没有发布该部分的原因。我遇到的唯一问题是自动更正或任何形式的自动完成都不起作用。我有一些从 xml 加载的 EditText,它们似乎工作正常。我无法从 xml 加载这些,因为根据用户提供的输入,会生成额外的 EditText,所以我必须以编程方式进行。关于为什么这不起作用有什么建议吗?

是的,我查看了文档,但我似乎也没有在那里找到答案,因为我添加的标志没有起到作用。

意图以编程方式添加启用了自动完成功能的 Edittext

问题:生成了 Edittext,但未将任何文本支持帮助显示为自动完成或更正

提前感谢 StackOverFlow 国家

4

4 回答 4

2

您调用setRawInputType()了三次,这会覆盖前两次调用,而是调用setRawInputType()一次并用于|传递所有三个标志:

test.setRawInputType(InputType.TYPE_TEXT_FLAG_AUTO_CORRECT | 
                     InputType.TYPE_TEXT_FLAG_MULTI_LINE | 
                     InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);
于 2012-12-23T19:44:32.080 回答
0

好吧,我发现你最好的办法是使用一种叫做布局充气机的东西。

这是因为在 xml 中为 Edittext 设置了很多东西。为您的 xml 文件创建此(下)。请注意,您只能有一个 Root 元素。因此,您需要为每个模板创建一个新文件。

请注意,我也有一个 id

使用这个(下)以编程方式插入

EditText Stest = (EditText) getLayoutInflater().inflate(R.layout.section_header, null);



<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:inputType="textAutoCorrect|textCapWords"
    android:id="@+id/section" >
</EditText>

这样,它将插入并拥有所有默认值以及您创建的任何添加。事实上,由于大多数使用 XML,因此缺乏对服务代码库的支持。

这样,您仍然可以使用代码进行动态插入,但使用 xml 来定义插入的对象/视图的行为方式

于 2012-12-24T01:19:37.967 回答
0

如果您想要一个具有自动完成功能的可编辑文本视图,您可能只想立即使用AutoCompleteTextView并为自己节省一些实现麻烦。

于 2012-12-23T19:46:00.467 回答
0

为我添加InputType.TYPE_CLASS_TEXT作品

于 2016-06-08T02:36:59.867 回答