Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 比较Google地图标记id与SQLite数据库中的id_Java_Android_Sqlite_Google Maps - Fatal编程技术网

Java 比较Google地图标记id与SQLite数据库中的id

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

我试图将标记的值与预先制作的SQLite数据库中的id进行比较。原因是,我可以有特定标记的具体细节。 例如:

如果单击的标记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();
        }
    }

不需要所有for循环或任何东西。非常非常简单

最好的方法是创建数据库元素的HashMap,使用数据库id作为键,使用标记作为值,这样就可以从数据库中提取所需的标记

selectDesc = monDatabase.database.rawQuery("SELECT description from monuments WHERE title = '" + marker.getTitle() + "'", null);