使用计时器在Google地图上显示信息

时间:2015-09-28 20:14:57

标签: android google-maps

我的应用有一个基本的Google地图活动,在地图上有4个标记显示一些文字。这些标记使用HashMap显示在地图上。

这是目前的一些代码 -

Double waterPrice = 1.38;
Double foodPrice = 1.23;

mMyMarkersArray.add(new MyMarkers("Tesco", "Tesco", Double.parseDouble("1.1111"), Double.parseDouble("-1.1111"), "Water: €" + waterPrice , "Food: €" + foodPrice , "Address: London"));
mMyMarkersArray.add(new MyMarkers("Sainsburys", "Sainsburys", Double.parseDouble("1.1111"), Double.parseDouble("-1.1111"), "Water: €" +waterPrice , "Food: €" + foodPrice , "Address: Manchester"));

我想知道,是否可以定义一个包含5个值的数组,例如:

[1.33, 1.23, 1.24, 1.99, 2.01];

然后当首先加载地图时,它会获取索引0处的值,将其分配给waterPrice,然后在我单击一个按钮后或经过5秒后,它将移至索引1,索引2等每次单击时间按钮时将此新价格发送到标记。因此,我可以只迭代数组,并将值发送到标记,而不是上面定义的waterPricefoodPrice

我可以使用两个数组,一个用于waterPrice,一个用于foodPrice,以便我可以将waterPrice分配给数组中的索引0吗?

对不起,如果我想解释的不是很清楚,如果有人能帮助我,我会很感激。我现在正试图想出一个实现这个目标的方法。

1 个答案:

答案 0 :(得分:1)

我不太清楚你想要做什么,所以如果我的答案是错误的,请提供更多细节。如果问题仅在于延迟一段时间后运行代码,则可以使用Handler在特定时间后运行代码。像这样:

final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
  @Override
  public void run() {
    // run after one second
  }
}, 1000);

如果您的列表中包含已定义的时间和价格:

for (int i=0; i<timeList.size(); i++) {
    Double time = timeList.get(i);
    Double waterPrice = waterPriceList.get(i);
    Double foodPrice = foodPriceList.get(i);
            handler.postDelayed(new Runnable() {
          @Override
          public void run() {
            // update your marker
          }
        }, timeInSeconds*1000);
}