2017-08-24 35 views
0

这里我有一个数组列表添加第一个元素的默认项的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”会作为建议,同样对所有其他字母 我的需要是我需要一个默认项目“自动”的第一个建议事件,尽管我们在自动完成文本视图中键入任何字母

+0

你的意思是在列表视图中的文本提示? – JRG

+0

所以你想要一个默认项目显示,当没有其他项目显示在列表中?或者你是否总是希望拥有相同的第一个项目而不管搜索?一些澄清将使用位置列表是巨大的 – windedmoose

+0

上午,但我的第一个建议必须始终是“自动检测” –

回答

0

这听起来像你需要添加自动检测位置,然后再循环游标。较早前,我假设在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); 
+0

的,当我们在autocompletetextview“B”型这将不会显示“自动检测”,我们应该键入一个以查看它 –

+0

您可以发布执行搜索和更新适配器的代码吗?这听起来像是实际的代码更改需要去的地方。 – windedmoose

+0

我已经编辑代码中看到它 –

0
ArrayList<String> arrlist = new ArrayList<String>(); 
arrlist.add("Default element"); 
+0

我认为它autocompletetextview的特产基于指数的排序,因为如果我们给完成数组也是基于输入给我们的结果而已 –

相关问题