我的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(是的,正确的引用是一个笑话)。
在此先感谢大家!