AutoCompleteTextView列表 - 不显示单词字符串首先,然后是两个单词字符串。
创始人
2024-09-22 20:00:53
0

以下是一个使用AutoCompleteTextView实现的示例代码,其中列表中不显示以输入的字符串开头的单词,只显示包含两个单词的字符串。

import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private AutoCompleteTextView autoCompleteTextView;

    private String[] words = {"apple", "banana", "cherry", "orange", "pear", "pineapple"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        autoCompleteTextView = findViewById(R.id.autoCompleteTextView);

        ArrayAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, words);
        autoCompleteTextView.setAdapter(adapter);

        autoCompleteTextView.setThreshold(2); // 设置输入最小长度为2

        autoCompleteTextView.setOnItemClickListener((parent, view, position, id) -> {
            String selectedWord = (String) parent.getItemAtPosition(position);
            autoCompleteTextView.setText(selectedWord); // 设置AutoCompleteTextView的文本为选中的单词
        });

        autoCompleteTextView.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }

            @Override
            public void afterTextChanged(Editable s) {
                String input = s.toString();
                ArrayAdapter filteredAdapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_dropdown_item_1line);
                for (String word : words) {
                    if (word.contains(" ") && word.startsWith(input)) {
                        filteredAdapter.add(word);
                    }
                }
                autoCompleteTextView.setAdapter(filteredAdapter);
            }
        });
    }
}

在布局文件activity_main.xml中,添加一个AutoCompleteTextView组件:


在这个示例中,我们首先创建了一个包含一些单词的字符串数组。然后,我们创建了一个ArrayAdapter来适配AutoCompleteTextView,并将其设置为AutoCompleteTextView的适配器。我们还设置了输入的最小长度为2,以便在用户至少输入两个字符后才开始显示自动完成的下拉列表。

接下来,我们添加了一个TextWatcher,以在输入文本发生变化时实时过滤并更新AutoCompleteTextView的下拉列表。在afterTextChanged方法中,我们遍历单词数组,并将包含两个单词并以输入的字符串开头的单词添加到新的适配器中。然后,我们将这个适配器设置为AutoCompleteTextView的适配器,以更新下拉列表。

当用户从下拉列表中选择一个单词时,我们使用setOnItemClickListener监听器将选择的单词设置为AutoCompleteTextView的文本。

请注意,此示例中的布局文件仅包含一个AutoCompleteTextView组件,您可以根据自己的需求进行修改和扩展。

相关内容

热门资讯

安卓系统怎么连不上carlif... 安卓系统无法连接CarLife的原因及解决方法随着智能手机的普及,CarLife这一车载互联功能为驾...
oppo手机安卓系统换成苹果系... OPPO手机安卓系统换成苹果系统:现实吗?如何操作?随着智能手机市场的不断发展,用户对于手机系统的需...
iwatch怎么连接安卓系统,... 你有没有想过,那款时尚又实用的iWatch,竟然只能和iPhone好上好?别急,今天就来给你揭秘,怎...
iphone系统与安卓系统更新... 最近是不是你也遇到了这样的烦恼?手机更新系统总是失败,急得你团团转。别急,今天就来给你揭秘为什么iP...
安卓系统上滑按键,便捷生活与高... 你有没有发现,现在手机屏幕越来越大,操作起来却越来越方便了呢?这都得归功于安卓系统上的那些神奇的上滑...
安卓平板改windows 系统... 你有没有想过,你的安卓平板电脑是不是也能变身成Windows系统的超级英雄呢?想象在同一个设备上,你...
安卓系统连接耳机模式,蓝牙、有... 亲爱的手机控们,你们有没有遇到过这种情况:手机突然变成了“耳机模式”,明明耳机没插,声音却只从耳机孔...
希沃系统怎么装安卓系统,解锁更... 亲爱的读者们,你是否也像我一样,对希沃一体机上的安卓系统充满了好奇呢?想象在教室里,你的希沃一体机不...
安装了Anaconda之后找不... 在安装Anaconda后,如果找不到Jupyter Notebook,可以尝试以下解决方法:检查环境...
安卓换鸿蒙系统会卡吗,体验流畅... 最近手机圈可是热闹非凡呢!不少安卓用户都在议论纷纷,说鸿蒙系统要来啦!那么,安卓手机换上鸿蒙系统后,...