Java 如何从数据库Arraylist在Google地图上添加标记

Java 如何从数据库Arraylist在Google地图上添加标记,java,android,google-maps,android-studio,arraylist,Java,Android,Google Maps,Android Studio,Arraylist,我不知道如何从数据库的Arraylist在Google地图上添加标记 我已经试了很多,但都没用 数据库中的数组列表: public ArrayList GetUserByUserId(int-userid){ SQLiteDatabase db=this.getWritableDatabase(); ArrayList userList=新的ArrayList(); String query=“从”+表格用户中选择Loc、Lat、Long; Cursor Cursor=db.query(TABL

我不知道如何从数据库的Arraylist在Google地图上添加标记

我已经试了很多,但都没用

数据库中的数组列表:

public ArrayList GetUserByUserId(int-userid){
SQLiteDatabase db=this.getWritableDatabase();
ArrayList userList=新的ArrayList();
String query=“从”+表格用户中选择Loc、Lat、Long;
Cursor Cursor=db.query(TABLE_Users,新字符串[]{LocationName,Latitude,Longitude},KEY_ID+“=?”,新字符串[]{String.valueOf(userid)},null,null,null,null);
if(cursor.moveToNext()){
HashMap用户=新建HashMap();
user.put(“Loc”,cursor.getString(cursor.getColumnIndex(LocationName));
user.put(“Lat”,cursor.getString(cursor.getColumnIndex(Latitude));
user.put(“Long”,cursor.getString(cursor.getColumnIndex(Longitude));
添加(用户);
}
返回用户列表;
}
我的尝试

@覆盖
4月1日公开作废(谷歌地图谷歌地图){
数据库db=新数据库(此数据库);
ArrayList userList=db.GetUsers();
mMap=谷歌地图;
双纬度=0;
双经度=0;
对于(int i=0;i

谷歌地图应该显示数据库中纬度和经度的所有标记,假设您的
userList
列表在打印时以这种格式包含您的位置:

Log.d("userListTag", userList.toString())
输出:

userListTag: [{Loc=California, Long=-117.985904, Lat=35.125801}, {Loc=Las Vegas, Long=-115.13983, Lat=36.169941}]
运行您的代码时,出现以下错误:

java.lang.NullPointerException:尝试调用虚拟方法 空对象上的“java.lang.String java.lang.String.toString()” 参考文献

这是因为您试图获取的“纬度”和“经度”在
userList
中不作为键存在。请尝试将它们替换为“Lat”和“Long”,如下所示:

latitude = Double.parseDouble(userList.get(i).get("Lat").toString());
longitude = Double.parseDouble(userList.get(i).get("Long").toString());

我用上面的更改测试了您的代码,两个示例标记在我的地图上都显示得很好,所以我希望这对您有所帮助!

假设您的
userList
列表在打印时以这种格式包含您的位置:

Log.d("userListTag", userList.toString())
输出:

userListTag: [{Loc=California, Long=-117.985904, Lat=35.125801}, {Loc=Las Vegas, Long=-115.13983, Lat=36.169941}]
运行您的代码时,出现以下错误:

java.lang.NullPointerException:尝试调用虚拟方法 空对象上的“java.lang.String java.lang.String.toString()” 参考文献

这是因为您试图获取的“纬度”和“经度”在
userList
中不作为键存在。请尝试将它们替换为“Lat”和“Long”,如下所示:

latitude = Double.parseDouble(userList.get(i).get("Lat").toString());
longitude = Double.parseDouble(userList.get(i).get("Long").toString());

我用上面的更改测试了您的代码,两个示例标记在我的地图上都显示得很好,所以我希望这对您有所帮助!

很高兴听到并很高兴能提供帮助!:)很高兴听到并很高兴能提供帮助!:)