0

我正在尝试做一个用于在地图中绘制几个标记的类。我有一个问题,但这个问题是 Java 问题而不是 Android 问题。

我有一个主类,它实例化一个帮助类,该类定义了绘制标记的方法:

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();
}

我应该在哪里实施这些?在主班还是助手班?

非常感谢你。

4

1 回答 1

0

改变

private MostrarBares pintaBares; //helper class

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

您需要有一个可以调用方法的对象。

于 2013-05-11T12:56:13.787 回答