Android AutoCompleteTextView 仅适用于第一个单词?

问题描述 投票:0回答:3

我正在尝试使用自动完成文本,但遇到了一个小问题。

当我尝试输入第一个单词作为国家之一时,它工作正常, 但如果我尝试输入其他内容,然后其中一个国家/地区什么也不会发生,例如:“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>
android autocompletetextview
3个回答
2
投票

提高您的阈值以获取建议... 如果您想在输入

1st character
后进行搜索,

et1.setThreshold(1);

如果您想在输入

2nd character
后进行搜索,

et1.setThreshold(2);

0
投票

您必须创建自定义

AutoCompleteTextView
。在
Adapter
中实现 Filter 类并重写
performFilterring()
方法。在这种方法中,您必须编写一些与结果匹配的代码。在您的情况下,您必须检查输入字符串是否包含您的字符串列表之一。

检查使用自定义适配器的链接: 自定义 AutoCompleteTextView 行为由 CursorLoader 支持的 AutoCompleteTextView


0
投票

我想保存标签作为列表来告诉我的应用程序中的主题,所以我创建了不同的框。 例如。如果我输入我的标签 ger,我会得到建议,然后将其保存在框中,然后我编写新的标签,这样我就会得到建议,之前保存的建议会自动删除。 在我的情况下,最多只有 3 个标签,所以我使用它的次数超过了它会很复杂。

目前我正在学习并在 Android 中做我的第一个项目,所以我应用了我脑海中出现的每一个想法,所以也许这个答案很愚蠢:)

© www.soinside.com 2019 - 2024. All rights reserved.