我正在尝试使用自动完成文本,但遇到了一个小问题。
当我尝试输入第一个单词作为国家之一时,它工作正常, 但如果我尝试输入其他内容,然后其中一个国家/地区什么也不会发生,例如:“ger”(将给我德国)和:“hello ger”(不会给德国)
如果我只单击一次输入并从第二行开始,也会发生同样的事情,它仅适用于第一个单词和第一行。另外,如果我确实将它用作第一个单词并尝试再次使用它,例如 Germany (来自自动完成),然后输入 ger,则不会弹出任何内容。
知道如何使其适用于文本的其余部分或如何控制它(将其设置在所选内容或行中的位置之后或之后?
代码:
AutoCompleteTextView et1;
private static final String[] COUNTRIES = new String[] {
"Belgium", "France", "Italy", "Germany", "Spain"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
et1=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, COUNTRIES);
et1.setAdapter(adapter);
et1.setThreshold(0);
}
XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.asaf1.workersreports.Main3Activity">
<AutoCompleteTextView
android:text=""
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/autoCompleteTextView"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:textAlignment="viewEnd"
android:gravity="right|top"/>
</RelativeLayout>
提高您的阈值以获取建议... 如果您想在输入
1st character
后进行搜索,
et1.setThreshold(1);
如果您想在输入
2nd character
后进行搜索,
et1.setThreshold(2);
您必须创建自定义
AutoCompleteTextView
。在 Adapter
中实现 Filter 类并重写 performFilterring()
方法。在这种方法中,您必须编写一些与结果匹配的代码。在您的情况下,您必须检查输入字符串是否包含您的字符串列表之一。
检查使用自定义适配器的链接: 自定义 AutoCompleteTextView 行为 和 由 CursorLoader 支持的 AutoCompleteTextView
我想保存标签作为列表来告诉我的应用程序中的主题,所以我创建了不同的框。 例如。如果我输入我的标签 ger,我会得到建议,然后将其保存在框中,然后我编写新的标签,这样我就会得到建议,之前保存的建议会自动删除。 在我的情况下,最多只有 3 个标签,所以我使用它的次数超过了它会很复杂。
目前我正在学习并在 Android 中做我的第一个项目,所以我应用了我脑海中出现的每一个想法,所以也许这个答案很愚蠢:)