1

私はこの Android アプリを開発しており、ホーム ビューには 3 つのタブがあります。通知タブは、タブ ホストの既定のタブではありません。そのため、通知では、ユーザーが各通知を削除するようにコーディングしました。通知を削除した後にアプリに実行させたいことは、通知をリロードすることです。タブビューを維持したいので、これはできません

Intent intent = new Intent(this, Notification.class);

                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intent);

タブビューからフルスクリーンビューで通知をロードするためですが、そうすると

Intent intent = new Intent(this, TabExercise.class);

                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intent);

通知ではなく、タブ ホストの既定のタブに移動します。特定のタブを指す Tabexercise に意図を送信する方法があるかどうか疑問に思っていましたか?

4

4 に答える 4

4

Tabexercise次のように、タブのインデックスとともにインテントを送信します。

Intent i = new Intent(this, TabExercise.class);
i.putExtra("tab_index","1");
startActivity(i);

内部onCreate()で、 Tabexercise渡したパラメーターを読み取って現在のタブを設定します。

TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost); //Assuming that you are setting your tabHost like this
Bundle extras = getIntent().getExtras();
if (extras != null) {
    String value = extras.getString("tab_index");
    if(value.equals("1"){
        tabHost.setCurrentTab(Integer.valueOf(value)); 
    }
    //and so on ...

}

お役に立てれば。

于 2013-07-18T07:25:57.137 に答える
0
Intent intHome = new Intent().setClass(this, MainActivity.class);
    intHome.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
    TabSpec tabhome = tabHost
      .newTabSpec("Home")
      .setIndicator("Home", ressources.getDrawable(R.drawable.house))
      .setContent(intHome);


    Intent intfav = new Intent().setClass(this, Favourite.class);
    intfav.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
    intfav.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    TabSpec tabfav = tabHost
      .newTabSpec("Settings")
      .setIndicator("FAVOURITE", ressources.getDrawable(R.drawable.star))

      .setContent(intfav);

    Intent intinfo = new Intent().setClass(this, Information.class);
    TabSpec tabinfo = tabHost
      .newTabSpec("Settings")
      .setIndicator("INFO", ressources.getDrawable(R.drawable.about))
      .setContent(intinfo);

    tabHost.addTab(tabhome);
    tabHost.addTab(tabfav);
    tabHost.addTab(tabinfo);
    tabHost.setCurrentTab(0);

アクティビティをリロードしたいので、その特定のアクティビティで onResume() または onPause() メソッドを使用してアクティビティをリロードできます。

それがあなたを助けることを願っています

于 2013-07-18T07:31:29.960 に答える