【发布时间】:2014-02-02 07:19:16
【问题描述】:
我在单击 AutoCompleteTextView 时遇到问题。使用下面的代码,我没有像在 SQLite 数据库中那样获得单击项目的 ID。假设我单击自动完成下拉菜单中显示的第二项。我从 id 2 中的数据库中获取值,而不是数据库中 id 不同的选定项目的值。我确定我的 onItemClick 实现是错误的。我希望有人能帮我弄清楚。很长一段时间以来,我一直对此感到困扰。
我的代码:
SearchTrainee = (AutoCompleteTextView) findViewById(R.id.search);
trainees = new ArrayList<HashMap<String, String>>();
trainees = DatabaseHelper.getInstance().getStoredTrainees();
String str[] = new String[trainees.size()];
for (int i = 0; i < trainees.size(); i++) {
str[i] = trainees.get(i).get("display");
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.search_autocomplete, str);
SearchTrainee.setAdapter(adapter);
SearchTrainee.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
System.out.println("Last name: " + trainees.get(arg2).get("last_name"));
//currentTrainee.setFirstname(trainees.get(arg2).get("first_name"));
// currentTrainee.setCompany(trainees.get(arg2).get("company"));
// System.out.println(currentTrainee.getFirstname());
}
【问题讨论】:
-
不要使用 ArrayAdapter,改用 SimpleCursorAdapter
-
@pskink 有什么具体原因吗??
-
因为您注意到您丢失了商品 ID
标签: android autocomplete onitemclicklistener