java谷歌地图标记自定义信息从Firebase获取数据
我试图从Firebase获取数据并将其加载到我的marker自定义视图中,但每当我将数据设置为我的TextView和imageview时,它都不会显示,因为我相信问题是,我的代码在加载数据之前返回视图,所以我如何解决这个问题
@Override
public View getInfoContents(Marker marker) {
View view = ((Activity)context).getLayoutInflater()
.inflate(R.layout.markerinfo, null);
final TextView nameValue = (TextView) view.findViewById(R.id.name);
final TextView titleValue = (TextView) view.findViewById(R.id.title);
imageView = (ImageView) view.findViewById(R.id.img);
final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef2 = database.getReference().child(marker.getSnippet().substring(1));
myRef2.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
name = snapshot.child("name").getValue(String.class);
String title = snapshot.child("title").getValue(String.class);
String image = snapshot.child("image").getValue(String.class);
Toast.makeText(context, name, Toast.LENGTH_SHORT).show();
titleValue.setText(title);
nameValue.setText(name);
Glide.with(context)
.asBitmap()
.load(image)
.into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
imageView.setImageBitmap(resource);
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
});
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(context, databaseError.toString(), Toast.LENGTH_SHORT).show();
}
});
return view;
}
共 (0) 个答案