MapViewクラス及びMapActivityクラス

広告

WebViewクラスの定義を確認します。クラス図は次のようになっています。

  • java.lang.Object
  • android.view.View
  • com.google.android.maps.MapView

MapViewクラスはViewクラスのサブクラスです。他のビューと同じですがパッケージが他と少し異なるので注意して下さい。

MapViewクラスのコンストラクタ

MapViewクラスを利用するにはコンストラクタを使ってMapViewクラスのオブジェクトを作成します。どのようなコンストラクタが用意されているか確認してみます。

コンストラクタ
MapView(Context context)
MapView(Context context, AttributeSet attrs, Map inflateParams)

コンストラクタは2つ用意されています。1番目のコンストラクタ以外は詳細は不明です。

1番目のコンストラクタの場合、引数には「Context」クラスのオブジェクトを指定します。ここでは自分自身を表す「this」を指定して下さい。ただし「MapView」クラスを利用する場合には表示する画面は「Activity」クラスではなく「MapActivity」クラスを継承して作成する必要があります。

MapActivityクラス

ではMapActivityクラスの定義を確認します。クラス図は次のようになっています。

  • java.lang.Object
  • android.content.Context
  • android.app.ApplicationContext
  • android.app.Activity
  • com.google.android.maps.MapActivity

MapActivityクラスはActivityクラスのサブクラスです。基本的な使い方はActivityクラスと同じでありライフサイクルも同じです。よってビューの追加などは「onCreate」メソッドをオーバーライドしてその中に記述します。

Here we initialize static factories, create the map object and the 
traffic service, and begin our threads. The subclass should create 
(or inflate) its MapView object after calling through to super.onCreate().

Parameters:
  icicle  If the activity is being re-initialized after previous being 
    shut down then this Bundle contains the data it most recently 
    supplied in onFreeze(). Note: Otherwise it is null.

基本的な使い方

具体的には次のように記述します。

private final int WC = ViewGroup.LayoutParams.WRAP_CONTENT;

@Override public void onCreate(Bundle icicle) {
    super.onCreate(icicle);

    MapView map = new MapView(this);
    setContentView(map, new ViewGroup.LayoutParams(WC, WC));
}

では次のページ以降で「MapView」クラスの詳しい使い方を確認していきます。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)