添加第一个元素的默认项的ArrayList
这里我有一个数组列表添加第一个元素的默认项的ArrayList
ArrayList<String> arrlist = new ArrayList<String>();
while (cursors.moveToNext()) {
arrlist.add((cursors.getString(cursors.getColumnIndex("location"))));
adapter1 = new ArrayAdapter<String>(
getBaseContext(),
R.layout.drop_list_item,
arrlist);
autocompletetextview.setAdapter(adapter1);
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
prepareMyList();
}
private void prepareMyList() {
ArrayList<String> arrlist = new ArrayList<String>();
String selectQuerys = "select distinct location from tb_user where location like '%"+autoservice.getText().toString()+"%'";
SQLiteDatabase dbs = sq.getReadableDatabase();
Cursor cursors = dbs.rawQuery(selectQuerys, null);
while (cursors.moveToNext()) {
arrlist.add((cursors.getString(cursors.getColumnIndex("location"))));
adapter1 = new ArrayAdapter<String>(
getBaseContext(),
R.layout.drop_list_item,
arrlist);
autoservice.setAdapter(adapter1);
}
}
@Override
public void afterTextChanged(Editable s) {
}
如果我输入“a”的自动完成TextView的所有项目进行陈述“A”会作为建议,同样对所有其他字母 我的需要是我需要一个默认项目“自动”的第一个建议事件,尽管我们在自动完成文本视图中键入任何字母
这听起来像你需要添加自动检测位置,然后再循环游标。较早前,我假设在onCreate
,这将是:
ArrayList<String> arrlist = new ArrayList<String>();
arrlist.add("automatically detect");
while (cursors.moveToNext()) { //...
然后在prepareMyList
:
private void prepareMyList() {
ArrayList<String> arrlist = new ArrayList<String>();
arrlist.add("automatically detect");
String selectQuerys = //...
这应该加上“自动检测”作为第一个项目开始,当你搜索。
注意:您应该考虑将一些代码移出while循环,以使其更有效(并且可能更少)。您不需要创建新的ArrayAdapter
或每次通过循环设置适配器。循环结束后,您可以只做一次。所有你在你的循环需要的是:
while (cursors.moveToNext()) {
arrlist.add((cursors.getString(cursors.getColumnIndex("location"))));
}
adapter1 = new ArrayAdapter<String>(
getBaseContext(),
R.layout.drop_list_item,
arrlist);
autoservice.setAdapter(adapter1);
的,当我们在autocompletetextview“B”型这将不会显示“自动检测”,我们应该键入一个以查看它 –
您可以发布执行搜索和更新适配器的代码吗?这听起来像是实际的代码更改需要去的地方。 – windedmoose
我已经编辑代码中看到它 –
ArrayList<String> arrlist = new ArrayList<String>();
arrlist.add("Default element");
我认为它autocompletetextview的特产基于指数的排序,因为如果我们给完成数组也是基于输入给我们的结果而已 –
你的意思是在列表视图中的文本提示? – JRG
所以你想要一个默认项目显示,当没有其他项目显示在列表中?或者你是否总是希望拥有相同的第一个项目而不管搜索?一些澄清将使用位置列表是巨大的 – windedmoose
上午,但我的第一个建议必须始终是“自动检测” –