Android AutoCompleteTextView中所选文本的隐藏ID

时间:2014-01-06 18:23:33

标签: android sqlite autocomplete

我的Android应用程序中有一个非常基本的表单。必须从我的SQLite数据库中的行中选择一个字段。 由于此字段提供了很多选项,因此用户不熟悉微调器,因此我选择了自动填充字段,因为用户通常知道他正在寻找的项目的名称。 所以,现在我对SQLite数据库表有一个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);
        }
});

但现在我遇到了一个问题:用户从我的db表中选择并看到字段'nombre',但我需要知道并存储'_id'字段。我可以通过try-n-fix解决它,但我想知道是否已经为Android SDK提供了一些更优雅或“正确”的解决方案(是的,正确的引用是一个笑话)。

先谢谢大家!!

1 个答案:

答案 0 :(得分:-1)

使用OnItemClickListener,回调的最后一个参数是项目ID