Java 比较Google地图标记id与SQLite数据库中的id
我试图将标记的值与预先制作的SQLite数据库中的id进行比较。原因是,我可以有特定标记的具体细节。 例如: 如果单击的标记id=1,则我希望在数据库中搜索id“1”,然后从该行获取详细信息。我认为只需循环数据库就足够简单了,但这似乎不起作用。我目前的代码是:Java 比较Google地图标记id与SQLite数据库中的id,java,android,sqlite,google-maps,Java,Android,Sqlite,Google Maps,我试图将标记的值与预先制作的SQLite数据库中的id进行比较。原因是,我可以有特定标记的具体细节。 例如: 如果单击的标记id=1,则我希望在数据库中搜索id“1”,然后从该行获取详细信息。我认为只需循环数据库就足够简单了,但这似乎不起作用。我目前的代码是: final Cursor dbId = monDatabase.database.rawQuery("SELECT _id from monuments", null); int idColumnCount = dbId.getC
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();
}
}
不需要所有for循环或任何东西。非常非常简单 最好的方法是创建数据库元素的HashMap,使用数据库id作为键,使用标记作为值,这样就可以从数据库中提取所需的标记
selectDesc = monDatabase.database.rawQuery("SELECT description from monuments WHERE title = '" + marker.getTitle() + "'", null);