我的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提供了一些更优雅或“正确”的解决方案(是的,正确的引用是一个笑话)。
先谢谢大家!!
答案 0 :(得分:-1)
使用OnItemClickListener,回调的最后一个参数是项目ID