0

私は単に 2 つのタブを持っており、経験からの参照として使用されます- TabActivityの複数の Android アクティビティ 私のクラス アーキテクチャは次のようなものです:
MainActivity は TabActivity拡張し
ます Tab1Activityは MapActivity (複数のマーカーを持つ) 2を拡張します。TabGroup2Activity は TabGroupActivity 2.iを拡張します。Tab2Activity


MainActivity.java

TabHost = getTabHost();
    Intent intentTab;
    intentTab = new Intent().setClass(this, TabGroup1Activity.class);
    mTabHost.addTab(mTabHost.newTabSpec("tab_1").setIndicator("Search")
            .setContent(intentTab));

    intentTab = new Intent().setClass(this, TabGroup2Activity.class);
    mTabHost.addTab(mTabHost.newTabSpec("tab_2").setIndicator("Google Map")
            .setContent(intentTab));
TabHost.setCurrentTab(0);

TabGroup2Activity.java

public class GroupTab2Activity extends TabGroupActivity{
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        startChildActivity("Tab2Activity", new Intent(this,Tab2Activity.class));


    }

}

Tab2Activity.javaには、googleMapButton という名前のボタンがあります。

googleMapButton.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {            

            final Intent intent = new Intent(Intent.ACTION_VIEW, Uri
                    .parse("http://maps.google.com/maps?"
                            + "saddr=43.0054446,-87.9678884"
                            + "&daddr=42.9257104,-88.0508355"));

            intent.setClassName("com.google.android.apps.maps",
                    "com.google.android.maps.MapsActivity");
            startActivity(intent);

        }
    });

ボタンをクリックすると、ネイティブのGoogleマップがロードされますが、下部のタブが消えます.どうすれば同じタブで開くことができますか??
ありがとう!!

4

1 に答える 1

1

ここを見てください:

googleMapButton.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {            

        final Intent intent = new Intent(Intent.ACTION_VIEW, Uri
                .parse("http://maps.google.com/maps?"
                        + "saddr=43.0054446,-87.9678884"
                        + "&daddr=42.9257104,-88.0508355"));

        intent.setClassName("com.google.android.apps.maps",
                "com.google.android.maps.MapsActivity");
        startActivity(intent);

    }
});

あなたがしていることは、デバイスにインストールされている Google マップ アプリケーション ("com.google.android.apps.maps") に明示的な意図を発し、MapsActivity を実行するように求めています。これが起動されると、アプリケーションを離れて Google マップを実行します。

自分のアプリケーションで Google マップを開く場合は、自分で行う必要があります。これはあなたにとって良いスタートになるでしょう: http://eagle.phys.utk.edu/guidry/android/mapOverlayDemo.html

于 2012-04-09T10:40:32.833 に答える