2014-01-06 23 views
0

我的Android應用程序中有一個非常基本的表單。其中一個字段必須從我的SQLite數據庫中的行中選擇。 由於此字段提供了大量選項,因此微調器對用戶來說不太舒服,所以我選擇了自動填充字段,因爲用戶通常知道他正在查找的項目的名稱。 因此,現在我有一個針對SQLite數據庫表的AutoCompleteTextView。自動完成功能工作得很好:Android中選定文本的隱藏ID AutoCompleteTextView

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, null, new String[]{"nombre"}, new int[]{android.R.id.text1}, 0);  

AutoCompleteTextView concepto = (AutoCompleteTextView) findViewById(R.id.editConcepto); 
    concepto.setAdapter(adapter); 

final PorkyOpenHelper poh = new PorkyOpenHelper(getApplicationContext()); 

adapter.setFilterQueryProvider(new FilterQueryProvider() 
{   
    @Override 
    public Cursor runQuery(CharSequence str) 
    { 
     if (str != null) 
     { 
      return poh.findConceptosByNombre(str.toString()); 
     } 
     else 
     { 
      return null; 
     } 
    } 
}); 

adapter.setCursorToStringConverter(new SimpleCursorAdapter.CursorToStringConverter() 
{ 
    @Override 
    public CharSequence convertToString(Cursor cursor) 
    { 
     int index = cursor.getColumnIndex(PorkyOpenHelper.CONCEPTOS_TABLE_NOMBRE); 
     return cursor.getString(index); 
     } 
}); 

但現在我有一個問題:用戶選擇和我的數據庫表中看到字段「農佈雷」,但我需要知道並存儲了「_id」字段。我可以用try-n-fix來解決這個問題,但是我想知道是否有一些更優雅的或者正確的解決方案已經針對Android SDK(是的,正確的引用是一個笑話)。

在此先感謝大家!

回答

-1

使用OnItemClickListener,回調的最後一個參數是項目ID

+0

這不就是PARAM在列表中的項目的索引顯示的?我需要數據庫中的_id,而不是自動填充字段列表中的位置。 – luispablo

+0

onItemClick(適配器視圖 父,觀景,詮釋 位置,長的ID),最後一個是ID不定位 – pskink

+0

也使用setStringConversionColumn代替setCursorToStringConverter – pskink