当前位置: 首页 > 知识库问答 >
问题:

Simple ArrayList自动完成不显示

桓瀚
2023-03-14

我试图得到一个自动完成列表弹出,使用此链接作为指导。

ArrayList<String> arrayColors = new ArrayList<String>();
arrayColors.add("Red");
arrayColors.add("Orange");
arrayColors.add("Yellow");
arrayColors.add("Green");
arrayColors.add("Blue");
arrayColors.add("Indigo");
arrayColors.add("Violet");

AutoCompleteTextView colorField = (AutoCompleteTextView) this.findViewById(R.id.editColor);
colorField.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        boolean handled = false;
        if (actionId == EditorInfo.IME_ACTION_DONE) {
            InputMethodManager inputMethodManager = (InputMethodManager)  activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
    inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
            handled = true;
        }
        return handled;
    }
});

ArrayAdapter<String> colorAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,arrayColors);
colorField.setAdapter(colorAdapter);
colorField.setThreshold(1);
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    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"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.mycompahy.myapp.DetailsActivity"
    tools:showIn="@layout/activity_details">

    <ScrollView
        android:id="@+id/scroll"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:fillViewport="false"
        android:scrollbars="none">

        <RelativeLayout
            android:id="@+id/container"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical">

    //OTHER CONTROLS

    <AutoCompleteTextView
        android:id="@+id/editColor"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:imeOptions="actionDone"
        android:inputType="text"
        android:maxLength="30"
        android:maxLines="1" />


        </RelativeLayout>

    </ScrollView>

</RelativeLayout>

我得到的错误消息:

w/filter:performFiltering()期间发生异常!java.lang.nullPointerException:collection==null at java.util.ArrayList.(arrayList.java:94)at android.widget.arrayAdapter$arrayFilter.performFilter(arrayAdapter.java:456)at android.widget.filter$requestHandler.handleMessage(Filter.java:234)at android.os.handler.dispatchMessage(handler.java:102)at android.os.handler.loop

共有1个答案

秦新立
2023-03-14

我试了你的代码后发现了问题。必须将宽度设置为AutoCompleteTextView,然后才能看到弹出的窗口。例如,将宽度设置为match_parent

<AutoCompleteTextView
    android:id="@+id/editColor"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:imeOptions="actionDone"
    android:inputType="text"
    android:maxLength="30"
    android:maxLines="1" />

这对我来说很管用。

 类似资料:
  • 问题内容: 如何使用Redis实现自动完成功能? 比如说我有一个数组。当我型我得到 我希望你明白这一点。我如何有效地使用redis命令来实现这一点(如果可能,但我认为是)。如果我能通过telnet尝试一些简单的命令来模仿这种行为,那就太好了。 谢谢 问题答案: 如果您要处理的是大型数据集,建议您考虑将其实现。我将一小部分Ruby做到了这一点: 例如: 在Wikipedia的Tries条目上阅读有关

  • 自动完成是现代网站中经常使用的一种机制,用于向用户提供他/她在文本框中键入的单词开头的建议列表。 然后,用户可以从列表中选择一个项目,该项目将显示在输入字段中。 此功能可防止用户输入整个单词或一组单词。 JQueryUI提供了一个自动完成窗口小部件 - 一个与下拉列表非常相似的控件,但过滤选项只显示与用户在控件中键入的内容相匹配的选项。 jQueryUI提供了autocomplete()方法,用于

  • md-autocomplete是一个Angular Directive,用作一个特殊的输入控件,带有内置下拉列表,显示与自定义查询的所有可能匹配。 一旦用户键入输入区域,该控件就充当实时建议框。 《md-autocomplete》可用于从本地或远程数据源提供搜索结果。 执行查询时md-autocomplete缓存结果。 第一次调用后,它使用缓存的结果来消除不必要的服务器请求或查找逻辑,并且可以禁用

  • 描述 (Description) 自动填充是Framework7的移动友好和触摸优化组件,可以是下拉列表或独立方式。 您可以使用JavaScript方法创建和初始化自动完成实例 - myApp.autocomplete(parameters) 其中parameters是用于初始化自动完成实例的必需对象。 自动填充参数 下表列出了Framework7中可用的自动填充参数 - S.No 参数和描述

  • 由于某些原因,我的多线程netty服务器无法在Windows上使用autocomplete(在我最初的测试中,linux工作得很好),我发现terminal console appender和jansi是很多问题的“解决方案”,除了这个问题。奇怪的是,我的客户机运行相同的代码函数来调用LineReader.ReadLine(“>”);工作完美的自动完成与几乎完全相同的代码。我不知道问题出在哪里,因

  • 问题内容: eclipse的自动完成功能现在无法使用,我搜索了几个小时,但找不到解决方案。我已经使用很长时间了,所以即使我已经安装了秋千,打开它之后的第一件事就是要安装SWT和Windows Builder。我的意思是,这可能是由于swt和swing引起的一些冲突(我读到一些有关冲突的信息,但如果可能的话,我不会)。 奇怪的是,当我按ctrl + space时它什么都没有显示,但是当我进入“编辑”