【问题标题】:changing marker icon in Async Task onPostExecute method在异步任务 onPostExecute 方法中更改标记图标
【发布时间】:2014-06-20 19:59:33
【问题描述】:

我正在尝试在 onPostExecute 方法内的异步任务类中添加自定义标记。但是当我尝试更改标记图标“.icon(BitmapDescriptorFactory.fromResource(R.drawable.)”时,我复制到可绘制文件夹的图像在该方法中不可见。可能是什么问题?

@Override
protected void onPostExecute(JSONObject jobject) {        

    try { 

        // ...

        MarkerOptions bingTrafficMarker = new MarkerOptions()
            .position(positionLatLng)
            .title(strdescription);

        gm.addMarker(bingTrafficMarker); 

        // ...            
    }
}   

【问题讨论】:

  • 你能在更改标记图标的地方添加代码吗?
  • 在“.title(strdescription)”之后只写“.icon(BitmapDescriptorFactory.fromResource(R.drawable.)”。但是这条线不起作用,因为我在drawable文件夹中的图像不可见.
  • 它必须像“R.drawable.my_image”一样可见

标签: android google-maps google-maps-markers google-maps-api-2


【解决方案1】:

我在 onPostExecute 中使用了一个回调方法让我回到我的主类。

这就是我所做的

AsyncTask 的代码

class AsyncRequest extends AsyncTask<String, Void, Document> {
@Override
protected void onPreExecute() {
}

public interface OnTaskCompleted {

    public abstract void findGeoCode(Document resultCode, String direction);
}

private OnTaskCompleted listener;

public AsyncRequest(OnTaskCompleted listener) {
    this.listener = listener;
}

@Override
protected void onPostExecute(Document result) {
    if (listener != null) {
        listener.findGeoCode(result, direction);
    }
}

实现接口回调的主类代码

private OnTaskCompleted listener = new OnTaskCompleted() {
    @Override
    public void findGeoCode(Document resultCode, String direction) {
        // TODO Auto-generated method stub
        LatLng cord = getLocateAddress(resultCode);
    }

调用方法

new AsyncRequest(listener).execute(paras)

希望有帮助

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-18
  • 1970-01-01
  • 1970-01-01
  • 2020-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多