我的应用有一个基本的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等每次单击时间按钮时将此新价格发送到标记。因此,我可以只迭代数组,并将值发送到标记,而不是上面定义的waterPrice
和foodPrice
。
我可以使用两个数组,一个用于waterPrice,一个用于foodPrice,以便我可以将waterPrice
分配给数组中的索引0吗?
对不起,如果我想解释的不是很清楚,如果有人能帮助我,我会很感激。我现在正试图想出一个实现这个目标的方法。
答案 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);
}