java - 如何使这个字符串出现
问题描述
如何String time
正确显示在每个标记中,它是从 JSON 文件以及标记的名称、描述、纬度/经度、图像 URL 获得的,但时间是唯一不会为每个标记动态显示的东西,相反,它只从 JSON 中获取一个时间字符串并在所有标记中显示相同的时间字符串,我怎么能这样做以使每个标记的相应时间按应有的方式显示?
我认为问题已经存在time = thing.gettime();
,但我不知道如何解决。
这是我的代码的这一部分,我真的不知道我能做些什么来修复它。
for (int i = 0; i < thingslist.size(); i++) {
Things thing = thingslist.get(i);
googleMaps.addMarker(new MarkerOptions()
.position(new LatLng(Double.valueOf(thing.getLatitude()), Double.valueOf(thing.getLongitude())))
.snippet(thing.getDescricao())
.icon(BitmapDescriptorFactory.fromResource(MudancaIconeMarker(thing.getTipo())))
.title(thing.getName()))
.setTag(thing.getPhoto());
time = thing.getTime(); //this
}
googleMaps.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
Intent intent = new Intent(getActivity(), ActivityDetails.class);
ActivityDetails.Info.id = marker.getId();
ActivityDetails.Info.photoURL = marker.getTag().toString();
TabInfos.name = marker.getTitle();
TabInfos.id = marker.getId();
TabInfos.description = marker.getSnippet();
TabInfos.time = time; // this
for (int i = 0;i<24;i++ ){
if (marker.getId().equals("m"+i)){ ActivityDetails.Info.num=i;TabInfos.num=i;}
}
TabMap.this.startActivity(intent);
}
});
我也试过这个,但没有解决问题:
public void setTime(String time) {
this.time = time;
}
public String getTime() {
return time;
}
@Override
public void onMapReady(final GoogleMap googleMapas) {
for (int i = 0; i < thingslist.size(); i++) {
Things thing = thingslist.get(i);
googleMaps.addMarker(new MarkerOptions()
.position(new LatLng(Double.valueOf(thing.getLatitude()), Double.valueOf(thing.getLongitude())))
.snippet(thing.getDescricao())
.icon(BitmapDescriptorFactory.fromResource(MudancaIconeMarker(thing.getTipo())))
.title(thing.getName()))
.setTag(thing.getPhoto());
setTime(thing.getTime()); //here
}
googleMaps.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
Intent intent = new Intent(getActivity(), ActivityDetails.class);
ActivityDetails.Info.id = marker.getId();
ActivityDetails.Info.photoURL = marker.getTag().toString();
TabInfos.name = marker.getTitle();
TabInfos.id = marker.getId();
TabInfos.description = marker.getSnippet();
AbaInfos.time = getTime(); //here
for (int i = 0;i<24;i++ ){
if (marker.getId().equals("m"+i)){ ActivityDetails.Info.num=i;TabInfos.num=i;}
}
TabMap.this.startActivity(intent);
}
});
PS。所有变量都已正确初始化/声明,因为它没有编译/构建错误,它可以正常编译,问题就是我在问题中提出的问题
解决方案
您没有为标记创建“时间”字段,您只有一个名为“时间”的全局变量。你不应该有这样的事情吗?
googleMaps.addMarker(new MarkerOptions().....setTime(thing.getTime()));
推荐阅读
- javascript - 如何让javascript更改rails中特定元素的元素
- reactjs - useEffect 在挂载上运行导致错误和空白对象
- javascript - (RESTFUL api Javascript get 函数)如果在映射中找不到帐户,如何返回 0?
- android - 当我在 mac 上运行颤振医生命令时,它显示如下,而我已经安装了 Android Studio,我可以从 Android Studio 运行 ios build
- python - 运行文件以执行不同的文件Python?
- typescript - 在新的 create-react-app 项目中通过“as”关键字键入断言会导致“解析错误:意外的令牌,预期的“;””
- python - 在 Ubuntu 20.04 上安装 virtualenvwrapper 后获取“`mkvirtualenv: command not found`”
- r - 如何通过不同的组循环 kruskal wallis 测试然后打印结果
- laravel - 如何在 Laravel 中压缩 json 响应导致附加多个属性?
- android - 如何让每个 ListView 元素创建一个独特的活动 [Android Studio - Kotlin]