4

TabHostには4つのタブがあり、A、B、C、Dとします。それぞれが単なるインデックスページであり、いずれかをクリックすると異なるアクティビティが表示されます。

問題は、ユーザーがタブに表示されているコンテンツから何かを選択したときに、別のアクティビティを開始する必要があることです。他のアクティビティも親タブ自体に表示されます。出来ますか?それとも私は何か他のことを試みなければなりませんか?

4

5 に答える 5

5

これを試して、Androidクックブックでこのソリューションを見つけて ください。http://androidcookbook.com/Recipe.seam; jsessionid = 5424397F3130CE7769FF47DD67742911?recipeId = 1693&recipeFrom = ViewTOC

于 2012-02-06T10:16:34.380 に答える
2

新しいアクティビティを開始する代わりに、タブのcontentViewを変更できませんか?

私は間違っているかもしれませんが、TabViewはアクティビティでホストされており、その逆ではないため、タブでアクティビティを開始することはできないと思います(Tabviewはタブごとにアクティビティをホストしません)。

于 2009-12-31T10:18:22.657 に答える
1

RukmalDiasが提供したリンクを要約します。これがあなたがすることです:

  1. 現在のアクティビティ(タブ内)をActivityGroupから派生するように変更します
  2. 切り替えたいアクティビティの新しいインテントを作成します
  3. 現在のアクティビティでこの関数をコピーして貼り付けて呼び出します。ここで、「id」は、切り替えたい新しいアクティビティのレイアウトの「android:id」です。

     public void replaceContentView(String id, Intent newIntent){
          View view = getLocalActivityManager().startActivity(id,newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)) .getDecorView(); 
          this.setContentView(view);}
    

現在のタブ付きアクティビティからビューを切り替えるために電話をかける方法の例を次に示します。

public void switchToNextActivity(View view)
{
    Intent myIntent = new Intent(getApplicationContext(), MyNextActivity.class);
    replaceContentView("next_activity", myIntent);
}
于 2012-03-12T03:37:55.780 に答える
1

これらの制限があるため、個々のアクティビティをタブコンテンツとして使用しないことが最善であるというのが一般的なコンセンサスだと思います。代替案へのポインタについては、次の質問と回答を参照してください。

Android:タブ内でアクティビティを使用すべきではないのはなぜですか? Android-タブ、MapView、タブ内のアクティビティ

于 2009-12-31T11:51:51.487 に答える
0

ビューの階層が失われます。私の場合、戻るボタンを押すとアプリが閉じます。

于 2012-03-29T11:07:30.940 に答える