0

这是我的场景:我有一个数据库,其中 2 列对我来说很有趣。我现在创建了一个自动完成文本视图,其中适配器通过 SQL 获取一列的条目。

到目前为止......很好,但我真正想要的是,如果用户键入某事。进入自动完成字段我注意到这一点并获取文本。通过 SQL,我现在想要获取第2 列的每个条目,其中第 1 列的值包含在输入的文本中。这个列表应该显示在适配器中。换句话说,我自己通过 sql 过滤数据,但我希望它们显示在适配器中。 问题是,适配器只显示以自动完成字段中的文本开头的条目,但我想随时显示适配器,正如已经说过的:我自己过滤数据我只想让适配器显示它们。任何想法如何解决这个问题?AutocompleteTextView 是正确的项目吗?

我还考虑过使用简单的 Spinner ......但是使用 Spinner 时有两个主要问题。首先,我必须让他可编辑。其次,我需要一个下拉菜单而不是“弹出窗口”。...

我解决这个问题的另一个想法是为自动完成字段编写一个自己的过滤器......但到目前为止我从来没有这样做过,而且我在互联网上也找不到任何例子。

感谢您的帮助

4

2 回答 2

1

我更改了微调器的 ArrayAdapter 方法,并得到了我的自定义微调器。只需更改此方法的参数即可

 Spinner spinner = (Spinner) findViewById(R.id.Spinner01);
 ArrayAdapter<CharSequence>   adapter=ArrayAdapter.createFromResource(This,R.array.statename,R.layout.mylayout);
 spinner.setAdapter(adp);

其中 mylayout 文件包含

<EditText 
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:id="@+id/spinnerTarget"
 android:textColor="#FF8B1500"
 android:gravity="center"
>
于 2010-09-10T12:43:01.743 回答
1

您可以使用 autocompleteTextView 并将其适配器设置为来自 SQLite 或字符串数​​组的值,如下所示:

String values[]= {"Orange","Apple","Pineapple"};
AutoCompleteTextView text=(AutoCompleteTextView)findViewById(R.id.a1);
text.setAdapter(new ArrayAdapter<String>    
    (this,android.R.layout.simple_dropdown_item_1line,values));

有关它的更多信息,请访问开发者网站

于 2012-07-07T09:42:26.570 回答