要素の選択を使用して画面の1つを構成するAndroidアプリケーションを構築しています。各要素はScreenElementクラスの子で、LinearLayout
にも拡張されています。GoogleマップをLinearLayoutの子として追加
私のアクティビティはデータベースにクエリを出し、要素の数とその性質を決定し、各要素をアクティビティのレイアウトに追加します。要素は、通常のJavaクラスですが、彼らは、彼らの親を通じて、LinearLayout
を拡張するように、私はちょうどそのような画像やテキストなどあらゆる種類のものを含めることができ
LinearLayout layout = (LinearLayout) findViewById(R.id.screenLayout);
for(ScreenElement e : screenElements) {
layout.addView(e);
}
要素をやってそれらを追加することができます。今、マップを表示できる要素が必要です。問題は:Fragment
にマップを表示することをお勧めします(保持クラスはActivity
またはFragment
ではなくView
であるため)。MapView
もありますが、すべての例が見つかりました。 Activity
のthisまたはthis)MapView
がオーバーライドされた機能(、onDestroy
、に接続するために必要とされているので、Activity
内MapView
を使用して...)。
それでは、私は基本的に見つけることを望んでいることは、これを行うものです(動作していないコード):
public class MapElement extends ScreenElement {
private MapView mapView;
private GoogleMap gMap;
public MapElement(Context con) {
super(con);
mapView = new MapView(con);
gmap = new GoogleMap();
// Set map options and features, size etc.
mapView.setMap(gMap);
this.addView(mapView);
}
}
これは動作しません。私はあなたが私に与えることができるすべてのヒントに感謝します!
リンクチュートリアルに従うことができます。 https://github.com/googlemaps/android-samples/blob/master/ApiDemos/app/src/main/java/com/example/mapdemo/ProgrammaticDemoActivity.java – Dportology
はい、私はそれを試みましたが、問題は 'getSupportFragmentManager () 'は、' Activity'が 'FragmentActivitiy'を拡張する場合にのみ呼び出すことができます。私は非アクティビティクラスで働いているので、そうではありません。あなたの例では、 'MapFragment'はプログラムでは作成できないので、ここで' MapFragment'を使うことはできません。 – s4inz