gpt4 book ai didi

android - 如何在 MapView overlay 中从 URL 实现标记延迟加载

转载 作者:行者123 更新时间:2023-11-29 18:17:22 27 4
gpt4 key购买 nike

我有可以显示覆盖的 Activity 。此叠加层具有从网络获取的标记。

如何从 URL 为这个标记实现延迟加载?

谢谢,伊戈尔

最佳答案

您需要做的是创建一个 AsyncTask 来检索您的数据。一旦异步任务执行并且您拥有数据,UI 线程将调用 onPostExecute()。在你的 onPostExecute() 方法中,你将把你的数据添加到你的 map View 中,就像在示例 android 代码中一样。

这是一个基本完整的示例。你应该能够用这个来填补漏洞。

    public class SomeActivity extends MapActivity {
private MapView mYourMapView;

protected void onCreate(Bundle yourbundle){
super.onCreate(yourbundle);
setContentView(R.layout.yourcontentview);

mYourMapView = (MapView)findViewById(R.id.yourmapviewid);

GetYourDataTask task = new GetYourDataTask(mYourMapView);
task.execute();
}
}

public class GetYourDataTask extends AsyncTask<Void, Void, Void>{
private MapView mView;
private List<Items> mYourItemsFromInternetSource;

public GetYourDataTask(MapView view){
this.mView = view;
}

protected Void doInBackground(Void... params){
.....get some data from internets
mYourItemsfromInternetSoruce = something you got from internet;
return null;
}

protected Void onPostExecute(){
YourOverlay overlay = new YourOverlay(mYourItemsFromInterSource);
mView.getOverlays().add(overlay);
}
}

public YourOverlay extends ItemizedOverlay<OverlayItem>{
private List<OverlayItem> mItems;
public YourOverlay(List<Item> itemsFromInternet)[
super(boundCenterBottom(someContext.getResources().getDrawable(R.drawable.map_pin)));
//for your items create overlay items then
List<OverlayItem> createdItems = someConvertFunction(itemsFromInternet);
for(OverlayItem item: createdItems){
mItems.add(item);
populate();
}
}
}

关于android - 如何在 MapView overlay 中从 URL 实现标记延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7385873/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com