2017-08-24 87 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的特產基於指數的排序,因爲如果我們給完成數組也是基於輸入給我們的結果而已 –