2017-02-24 104 views
0

在我的代码,我有映射表活动的第一项活动展示制造商和第二活动显示有关marker.In异步任务,我正在寻找一些位置和增加信息对象作为标签制造商的信息。就像我们做Marker.getTag()返回null

maker.setTag(obj); 

当我上标记onMarkerclick点击()被调用,我通过标记和第2活动启动并显示详细信息

到这里所有的东西工作正常调用getTag()得到OBJ。但是当我按下按钮并再次单击该标记时,它将从marker.getTag()返回null。以下是我的onMarkerClick方法

@Override 
public boolean onMarkerClick(Marker marker) { 

    if (marker.getTag().toString().equals("JobSeeker")) { 
    // this is user current location show i dont want to do anything when marker is clicked 
     return false; 
    } 



    if (previousMarker != null && previousMarker.equals(marker)) { 
    //this code is executed if marker is clicked second time 

     LinkedTreeMap jobPost = (LinkedTreeMap) marker.getTag(); 
     marker.setTag(jobPost); 
     Intent intent = new Intent(this, JobSearchResultActivity.class); 
     intent.putExtra("JobPost", jobPost); 

     Toast.makeText(this, "jobPostdetails" , Toast.LENGTH_SHORT).show(); 
     startActivity(intent); 
    } else { 
    // just showing some toast that marker is selected 
     previousMarker = marker; 
     Toast.makeText(this, "selected" , Toast.LENGTH_SHORT).show(); 
     marker.showInfoWindow(); 

    } 

    return false; 
} 

请帮帮我。我不知道我在哪里拨错,也可能是一些愚蠢的错误

回答

0

我认为你必须重新加载的标记数据。例如

map.clear(); 
... 
List<CustomModel> models = getModels(); 
foreach(CustomModels m : models){ 
    Marker marker = googleMap.addMarker(
    new MarkerOptions() 
     .position(m.getLocation()) 
     .icon(BitmapDescriptorFactory.fromResource(R.drawable.img_userpin))); 
marker.setTag(m); 
}