新足迹

 找回密码
 注册

精华好帖回顾

· 我总结的小儿增强体质方法(随便聊聊) (2012-8-7) 海边小妹 · 卫浴装修小记(内有多图)——长贴直播——装修终于完成了 (2018-3-27) 小小白虎
· 同年轻妈妈分享育儿的心得--关于什么时候学写字等 (2008-10-24) chatchat · 雪花作坊~老火汤之雪梨无花果猪骨汤+盐水鸡~~ (2008-3-5) 紫雪花
Advertisement
Advertisement
查看: 1986|回复: 5

Java code 請教一下 [复制链接]

发表于 2020-10-18 00:42 |显示全部楼层
此文章由 toro 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 toro 所有!转贴必须注明作者、出处和本声明,并保持内容完整
目前小弟卡在一個 code 解不開

不知道有沒有大神可以幫忙一下?
  1. JSONObject jsonObject = new JSONObject(showmaplocation);
  2.                             JSONArray jsonArray = jsonObject.getJSONArray("map");

  3.                             for (int i = 0; i < jsonArray.length(); i++) {
  4.                                 JSONObject mapShow = jsonArray.getJSONObject(i);
  5.                                 mapShowArrayList.add(new MapShow(
  6.                                         mapShow.getInt("MapID"),
  7.                                         mapShow.getInt("UserID"),
  8.                                         mapShow.getString("MapLat"),
  9.                                         mapShow.getString("MapLng"),
  10.                                         mapShow.getString("MapTitle"),
  11.                                         mapShow.getString("MapPhoto"),
  12.                                         mapShow.getInt("MapType")
  13.                                 ));
  14.                                 
  15.                                info = mapShowArrayList.get(i).getTitle();

  16.                                 mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
  17.                                     @Override
  18.                                     public boolean onMarkerClick(Marker marker) {
  19.                                             Toast.makeText(getContext(), mapShowArrayList.get(i).getTitle(), Toast.LENGTH_SHORT).show();
  20.                                         return false;
  21.                                     }
  22.                                 });
复制代码
要如何才可以把 for 迴圈的 i 值 帶到 mMap.setOnMarkerClickListener 裡面使用呢?

還是說 我的迴圈需要重寫?

因為是從 mysql 回傳資料 然後塞進 mapShowArrayList

透過 info = mapShowArrayList.get(i).getTitle(); 查看值都是正確的

但是進入 onclick 就只能抓取到最後一個值

[url=https://play.google.com/store/apps/details?id=com.luvtas.camping] yo camp 露營APP 一起來加入
Advertisement
Advertisement

发表于 2020-10-18 01:21 |显示全部楼层
此文章由 woshidajiangyou 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 woshidajiangyou 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这个看起来像是js经典考题啊,能不能把mMap.setOnMarkerClickListener包装到另一个单独的函数里?
  1. JSONObject jsonObject = new JSONObject(showmaplocation);
  2.                             JSONArray jsonArray = jsonObject.getJSONArray("map");

  3.                             for (int i = 0; i < jsonArray.length(); i++) {
  4.                                 JSONObject mapShow = jsonArray.getJSONObject(i);
  5.                                 mapShowArrayList.add(new MapShow(
  6.                                         mapShow.getInt("MapID"),
  7.                                         mapShow.getInt("UserID"),
  8.                                         mapShow.getString("MapLat"),
  9.                                         mapShow.getString("MapLng"),
  10.                                         mapShow.getString("MapTitle"),
  11.                                         mapShow.getString("MapPhoto"),
  12.                                         mapShow.getInt("MapType")
  13.                                 ));
  14.                                 
  15.                                info = mapShowArrayList.get(i).getTitle();

  16.                                 foo(i)

  17. private foo(i) {
  18.   mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
  19.                                     @Override
  20.                                     public boolean onMarkerClick(Marker marker) {
  21.                                             Toast.makeText(getContext(), mapShowArrayList.get(i).getTitle(), Toast.LENGTH_SHORT).show();
  22.                                         return false;
  23.                                     }
  24.                                 });
  25. }
复制代码
好多年没碰过java了,伪代码,凑合着看吧
锦瑟无端五十弦,一弦一柱思华年。
庄生晓梦迷蝴蝶,望帝春心托杜鹃。
沧海月明珠有泪,蓝田日暖玉生烟。
此情可待成追忆,只是当时已惘然。

发表于 2020-10-22 16:31 |显示全部楼层
此文章由 toro 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 toro 所有!转贴必须注明作者、出处和本声明,并保持内容完整
woshidajiangyou 发表于 2020-10-18 01:21
这个看起来像是js经典考题啊,能不能把mMap.setOnMarkerClickListener包装到另一个单独的函数里?好多年没 ...

這個方法我也試過了

還是一樣不能...

還是一樣只能讀取到 最後一個陣列的值
[url=https://play.google.com/store/apps/details?id=com.luvtas.camping] yo camp 露營APP 一起來加入

发表于 2020-10-22 18:17 |显示全部楼层
此文章由 woshidajiangyou 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 woshidajiangyou 所有!转贴必须注明作者、出处和本声明,并保持内容完整
toro 发表于 2020-10-22 15:01
這個方法我也試過了

還是一樣不能...

你这个主要是一个closure的问题

下面的函数是一个callback函数,并不是即时运行的
public boolean onMarkerClick(Marker marker) 只有当用户点击的时候才会触发,而那时候,主循环的i早就运行结束了,所以i总是得到最后一个值

锦瑟无端五十弦,一弦一柱思华年。
庄生晓梦迷蝴蝶,望帝春心托杜鹃。
沧海月明珠有泪,蓝田日暖玉生烟。
此情可待成追忆,只是当时已惘然。

发表于 2020-10-22 22:58 |显示全部楼层
此文章由 toro 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 toro 所有!转贴必须注明作者、出处和本声明,并保持内容完整
woshidajiangyou 发表于 2020-10-22 18:17
你这个主要是一个closure的问题

下面的函数是一个callback函数,并不是即时运行的

因為我設計的功能是 在 Google Map 上 會把標記都顯示出來

只有在點擊的時候 才會去顯示那個 Marker 的訊息

可是我現在卡住的點是 不管我點哪一個都是只顯示最後一筆資料的訊息

或許 Array 要重寫才可以?
[url=https://play.google.com/store/apps/details?id=com.luvtas.camping] yo camp 露營APP 一起來加入

发表于 2020-10-22 23:20 |显示全部楼层
此文章由 toro 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 toro 所有!转贴必须注明作者、出处和本声明,并保持内容完整
woshidajiangyou 发表于 2020-10-22 18:17
你这个主要是一个closure的问题

下面的函数是一个callback函数,并不是即时运行的

用別的方式呈現了QQ
[url=https://play.google.com/store/apps/details?id=com.luvtas.camping] yo camp 露營APP 一起來加入
Advertisement
Advertisement

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部