2013-03-23 51 views
0

类我试图做一个类,用于在地图上绘制一些标记。我有一个问题,但这个问题是一个Java问题,没有一个Android问题。创建绘画标记在谷歌地图api v2

我有一个实例化一个辅助类,定义了画标记的方法的主类:

private GoogleMap mapa = null; 
private MostrarBares pintaBares; //helper class 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_tapas); 

    mapa = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapaTapas)).getMap(); 
    mapa.setOnMarkerClickListener(this); 
    mapa.setOnInfoWindowClickListener(this); 

    if(todos == true) 
     pintaBares.addTodosMap(mapa); 
    ..... 

现在,我写的辅助类:

public class MostrarBares { 
    public void addNo11OnMap(GoogleMap map) 
    { 
     map.addMarker(new MarkerOptions() 
      .position(new LatLng(40.656106,-4.691306)) 
      .title("El No.11 La Taberna") 
     .icon(BitmapDescriptorFactory.fromResource(R.drawable.no11))); 
    } 

    public void addTodosMap(GoogleMap map) 
    { 
     addNo11OnMap(map); 
    } 
} 

当方法pintaBares。 addTodosMap(mapa)被调用时会抛出空指针异常......问题是什么?

如果我将要实现的方法

@Override 
public boolean onMarkerClick(Marker marker) 
{ 
    Toast.makeText(this, marker.getTitle(), Toast.LENGTH_LONG).show(); 

    return(false); 
} 

@Override 
public void onInfoWindowClick(Marker marker) 
{ 
    Toast.makeText(this, marker.getTitle(), Toast.LENGTH_LONG).show(); 
} 

我在哪里应该实现这些?在主类或辅助类中?

非常感谢你。

回答

0

变化

private MostrarBares pintaBares; //helper class 

private MostrarBares pintaBares = new MostrarBares(); //helper class 

您必须在其上调用方法的对象。