EditText以编程方式生成时出现问题

时间:2012-12-23 19:29:00

标签: java android autocomplete android-edittext autocorrect

我一直在尝试创建一个打开了单词建议的文本编辑器。这就是我一直希望能够让它发挥作用,但到目前为止还没有任何运气

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 个答案:

答案 0 :(得分:3)

您正在调用setRawInputType()三次覆盖前两个调用,而是调用setRawInputType()一次并使用|传递所有三个标记:

test.setRawInputType(InputType.TYPE_TEXT_FLAG_AUTO_CORRECT | 
                     InputType.TYPE_TEXT_FLAG_MULTI_LINE | 
                     InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);

答案 1 :(得分:0)

如果您想要一个具有自动完成功能的可编辑文本视图,您可能只想直接使用AutoCompleteTextView并节省一些实施问题。

答案 2 :(得分: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来定义插入对象/视图的行为方式

答案 3 :(得分:0)

为我添加InputType.TYPE_CLASS_TEXT