0
我想比较标记的价值与我预先制作的SQLite数据库中的ID。原因是我可以对特定的标记有特定的细节。 例如:比较谷歌地图标记ID与ID在SQLite数据库
如果点击的标记id = 1,那么我希望在数据库中搜索id'1',然后从该行抓取细节。我认为这很简单,只是循环访问数据库,但这似乎不起作用。我当前的代码是:
final Cursor dbId = monDatabase.database.rawQuery("SELECT _id from monuments", null);
int idColumnCount = dbId.getColumnCount();
dbId.moveToFirst();
while(dbId.isAfterLast() == false) {
for(int f = 0; f < idColumnCount; f++) {
mainMarkerId = dbId.getInt(0);
map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
if(marker.getId().equals("m" + mainMarkerId)){
Log.v("marker.getId()", "the id is: " + marker.getId());
selectDesc = monDatabase.database.rawQuery("SELECT description from monuments WHERE _id = " + mainMarkerId, null);
selectDesc.moveToFirst();
_description = selectDesc.getString(0);
Intent descriptionIntent = new Intent(MainActivity.this, DisplayData.class);
descriptionIntent.putExtra(EXTRA_MESSAGE, _description);
startActivity(descriptionIntent);
markerId.moveToNext();
}
}
});
dbId.moveToNext();
}
}
我不确定是否有可能这样,也许我不得不使用HashMap或东西。
任何帮助,非常感谢,
谢谢!
编辑:
我忘了提,我都已经显示在地图上,所以它更多的能够获取该位置的说明的情况下,然后将其通过一个新的标志物意图。
SOLUTION:
只是想我会张贴在这里的解决方案,如果任何人都需要它。我并不需要一个Hashtable,所有我所用的是:
selectDesc = monDatabase.database.rawQuery("SELECT description from monuments WHERE title = '" + marker.getTitle() + "'", null);
无需所有的for循环或任何东西。非常非常简单!