0

ここでは、最初のユーザーが Facebook 経由でログインする必要があるアプリを開発しています。そのため、ログイン ボタンを使用したログイン アクティビティが 1 つあります。ログインに成功した後、ユーザーはタブ アクティビティ A に移動します。タブ ウィジェットには、アクティビティ B と C と言う 2 つのアクティビティがあります。今、私がしなければならないことは、ユーザーがアクティビティ C から戻るボタンを押したときに、ユーザーがアクティビティ B に移動し、ユーザーがアクティビティ B から戻るボタンを押すと、ユーザーはアクティビティ A に移動する必要があります。ユーザーがアクティビティ A から戻るボタンを押すと、ユーザーはホーム画面に移動するか、アプリを終了する必要があります。ここでも、ユーザーがアプリ アイコンを押してアプリを起動すると、ユーザーはログイン ボタンのあるログイン アクティビティではなく、タブ アクティビティ A に直接移動する必要があります。ログアウト用のメニューボタンを作成しました。ユーザーがログアウトすると、再びログイン アクティビティに移動する必要があります...何をする必要がありますか?

4

2 に答える 2

1

まず、SharedPreferenceユーザーがログインしている場合はいくつかの設定を保存し、ユーザーがログインしている場合は設定を確認してから、ActivityAにバイパスします

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP).

ユーザーがログアウトした場合は、からログイン設定を削除しますSharedPreference。戻るボタンを押すには、関数をオーバーライドして戻るボタンを押す必要がありますonBackPressed()ActivityC では、呼び出すonBackPressed()必要があります

sharedPrefrence.putString("selected_tab", 1);

タブアクティビティを開始し、タブアクティビティでyour_tab_host.setCurrentTab(sharedPreferences.getString("selected_tab")

In ActivityB in のonBackPressed()ときは、コールする必要があります

sharedPrefrence.putString("selected_tab", 0);

タブアクティビティを開始し、タブアクティビティで

your_tab_host.setCurrentTab(sharedPreferences.getString("selected_tab")

そして最後に In ActivityA in のときonBackPressed()は、呼び出す必要がありますfinish()

于 2013-09-12T05:21:31.610 に答える
0

私のタブアクティビティ(TabViewLayout)で、メソッドを作成しましたが、

public void switchTabBar(int tab) {
        tabHost.setCurrentTab(tab); 
    }

@Override
      public void onBackPressed() {
        // Called by children
        TabViewLayout.this.finish();
        }

私のアクティビティAでは、

@Override
        public void onBackPressed() {
          this.getParent().onBackPressed();   
        }

私のアクティビティBでは、

@Override
        public void onBackPressed() {
           TabViewLayout parentTab = (TabViewLayout) this.getParent();
         parentTab.switchTabBar(0); 
        }

私のアクティビティ C (最終アクティビティ) では、

 @Override
    public void onBackPressed() {
         TabViewLayout parentTab = (TabViewLayout) this.getParent();
         parentTab.switchTabBar(1);

    }
于 2013-09-12T05:58:31.203 に答える