gpt4 book ai didi

android - 如何将额外的标记信息(HashMap)保存到 SQlite 数据库

转载 作者:行者123 更新时间:2023-12-03 18:14:57 27 4
gpt4 key购买 nike

我有手动添加到 map 上的标记,并且已经实现了 SQlite 数据库以在用户返回 map 后检索标记。所有这一切都很好,但是一旦用户点击标记(自定义信息窗口),我似乎无法将额外信息添加到标记中以显示

所以我所做的是我在数据库中创建了字段,就像在我的 onMapLongClick 中一样。已添加此:

contentValues.put(LocationsDB.FIELD_BMP, mImage + bitmap);

所以在我看来,它告诉我将 mImage 和位图保存在该字段中以便以后检索。

然后在检索时我添加了这个:
float img=0;

....

img = arg1.getFloat(arg1.getColumnIndex(LocationsDB.FIELD_BMP));

....

if(locationCount>0){

....

bitmap = myMimage.get(img);

所以这告诉我获取 FIELD_BMP 并为该标记放置该图像?

这是我用来获取每个标记的不同信息的代码:
private Map<String, Bitmap> myMimage;
private String mImage;

\\Then in the onCreate method

myMimage = new HashMap<String, Bitmap>();

\\Then to display the phto in the custom info window

View v = getLayoutInflater().inflate(R.layout.custom_window, null);
final ImageView imgIcon = (ImageView) v.findViewById(R.id.marker_icon);
Bitmap bitmap = myMimage.get(marker.getId());
imgIcon.setImageBitmap(bitmap);

然后在放置标记时我使用这个:
Marker marker = googleMap.addMarker(new MarkerOptions()
.position(pointTappedOnMap));
mImage = marker.getId();

一切正常,只是不保存该标记的图像。
请帮我?
提前谢谢大家!!

或者有人可以指出我正确的方向吗?

最佳答案

据我所知,您没有创建架构以将标记对象正确存储在 SQLiteDB 中。如果您将 img 声明为一种类型,则它不存在并且您可能没有创建有效的数据库字段,因为 img 不是一种类型。您的数据库架构应如下所示:

@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table " + DATABASE_TABLE + " ( " +
FIELD_ROW_ID + " integer primary key autoincrement , " +
FIELD_LNG + " double , " +
FIELD_LAT + " double , " +
FIELD_ZOOM + " text, " +
FIELD_IMAGE + " text" +
" ) ";
db.execSQL(sql);
}

您必须使用两个字段:marker_id(文本或数字)和 img(文本引用路径或 blob,如果数据库上的二进制文件)。

此外,在这种情况下,使用 Content Providers 也无济于事。但是,使用内容值会。

关于android - 如何将额外的标记信息(HashMap)保存到 SQlite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27604472/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com