1

もう何週間も悲しんでいます。1日4~5時間は時間を無駄にし、残りの時間にこれを残して他の作業を終わらせていました。しかし今、それは私の夢に出没するために戻ってきました. 私が今しなければならないのはこれだけだからです。アクションバーのメニュー項目を更新する方法を教えてください。アダプター (ListView またはスピナー) 内のデータを更新する場合と同様に、adapter.notifyDataSetChanged().

しかし、のために行う必要があることは何actionbarですか? 私の要件はこれです...

すべてのアクティビティにアクションバーがあります。ユーザーがアクティビティをクリックするlogin(action item on actionbar)と、4 番目のアクティビティ4thにリダイレクトされるとしlogin fromます。詳細を送信した後、ログイン アクティビティを終了し、ユーザーを にリダイレクトしています5th activityIn the 5th activity I am displaying username(as an action item) instead of login option共有設定と操作の助けを借りて。

しかし、実際の問題はここにあります ---> 4 つ目のアクティビティに戻ると、ユーザー名loginの代わりに (アクション項目) が表示されます。以前のアクティビティの変更を更新するためにアクションバーを更新していないためです。これは、バックスタックにあるすべてのアクティビティに当てはまります。アクティビティがバックグラウンドから前面に出たときに、このコールバック メソッドが呼び出されるため、唯一のことはメソッドで何かを行うことです。しかし、その方法で何をすべきでしょうか?私の質問が理解できることを願っています。他の詳細が必要な場合は、お知らせください。誰かがこれを解決するのを手伝ってくれたら、とても感謝しています。onResume()

注:でアクティビティを更新したくありません。onResume()これはハッキングであり、アクティビティでデータが失われる原因となります。

4

2 に答える 2

4

これを試して:

すべてのフラグメント アクティビティで、これを onResume() に記述します。

@Override
protected void onResume() {

    super.onResume();

    this.invalidateOptionsMenu();

}

そして、

onCreateOptionsMenu(Menu menu)

ユーザーがログインしているかどうかを確認します。ログインしている場合は、使用したのと同じ手法を使用してユーザー名を表示します。それ以外の場合は、ログイン メニュー項目を表示します。

これであなたの大きな問題が解決することを願っています。

于 2013-01-08T12:32:48.597 に答える