1
我在我的SQLite数据库中有一个描述列,其中包含一些要粘贴到每个标记时显示的文本。每个标记都有自己的描述。问题是当我点击一个标记时,我会显示所有其他AlertDialog
。我使用下面的代码:在地图上点击标记结果在AlertDialog中显示所有其他地图标记
@Override
protected boolean onTap(int index) {
db = openHelper.getWritableDatabase();
String[] result_columns = new String[] {COL_DESCRI};
Cursor cur = db.query(true, TABLE_COORD, result_columns, null, null, null, null, null, null);
cur.moveToFirst();
while (cur.isAfterLast() == false) {
String description = cur.getString(cur.getColumnIndexOrThrow("description"));
AlertDialog.Builder dialog = new AlertDialog.Builder(Geo.this);
dialog.setTitle("Infos.");
dialog.setMessage(description);
dialog.setPositiveButton("OK", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
dialog.show();
cur.moveToNext();
}
cur.close();
db.close();
return true;
}
的onTap
功能似乎工作:
protected boolean onTap(int index) {
db = openHelper.getWritableDatabase();
String[] result_columns = new String[] {COL_DESCRI};
Cursor cur = db.query(true, TABLE_COORD, result_columns, null, null, null, null, null, null);
cur.moveToPosition(index);
String description = cur.getString(cur.getColumnIndexOrThrow("description"));
AlertDialog.Builder dialog = new AlertDialog.Builder(Geo.this);
dialog.setTitle("Infos.");
dialog.setMessage(description);
dialog.setPositiveButton("OK", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
dialog.show();
cur.close();
db.close();
return true;
}
我知道我有一个指标分配到每一个AlertDialog
,但我不知道怎么做。我试图解决这个问题,但我似乎无法做到。有关如何解决问题的任何建议?
正是。你的意思是,我必须用'cur.moveToPosition(index)'替换'cur.moveToFirst()'并删除'cur.moveToNext()'?为什么不推荐? – androniennn
不建议使用,因为您应该只加载一次数据 - 将其绑定到视图时。您尚未发布此代码,因此很难发表评论。您应该将其加载到本地集合中。然后,当用户点击一个项目时,只需按索引访问正确的项目。 – ShibbyUK
我试过'cur.moveToPosition(index)',应用程序冻结,然后强制关闭。 – androniennn