Android Autocompletetextview和可编辑的微调器

时间:2009-11-25 16:48:25

标签: android sqlite autocompletetextview

这是我的场景:我有一个数据库,其中2列对我来说很有趣。我现在创建了一个autocompletetextview,其中适配器通过SQL生成一列的条目。

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

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

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

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

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

 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"
>

答案 1 :(得分:1)

您可以使用autocompleteTextView并将其适配器设置为来自SQLite或String Array的值,如下所示:

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));

有关它的更多信息,请转到developers site