android - 在 Actionbarsherlock 中更新 Actionbar 菜单

标签 android actionbarsherlock menuitem

这几个星期以来一直让我感到悲伤。我一直在浪费我的时间,每天有 4-5 个小时,剩下的时间就把它留在这里完成其他工作。但现在它又回来困扰我的梦想。因为我现在唯一要做的就是这个。有人可以让我知道如何更新操作栏菜单项吗?就像我们要更新适配器中的数据(在 ListView 或微调器中)一样,可以通过 adapter.notifyDataSetChanged() 来完成。

但是需要为actionbar 做些什么呢?我的要求是这样的……

我在所有 Activity 上都有我的操作栏。假设如果用户在 4th Activity 上单击 login(action item on actionbar),他将被重定向到 login from 第四个 Activity 。提交详细信息后,我将完成登录 Activity 并将用户重定向到 5th activity在第 5 个 Activity 中,我在共享首选项和操作的帮助下显示用户名(作为操作项)而不是登录选项

但实际问题在这里 ---> 当我返回到第 4 个 Activity 时,显示的是 login(操作项)而不是 username。因为我没有对操作栏进行任何刷新以更新先前 Activity 中的更改。这适用于 backstack 中的所有 Activity 。在我看来,唯一的事情就是在 onResume() 方法中做一些事情,因为当 Activity 从后台出现时,将调用此回调方法。但是在那个方法中应该做什么呢?希望我的问题是可以理解的。如果有人想要任何其他细节,请告诉我。如果有人帮助我解决这个问题,我将非常感激。

注意:我不想在 onResume() 中刷新我的 Activity,因为它是一个 hack,而且更多会导致 Activity 中的数据丢失。

最佳答案

试试这个:

在所有 fragment Activity 中将此写在 onResume() 中。

@Override
protected void onResume() {

    super.onResume();

    this.invalidateOptionsMenu();

}

然后在

onCreateOptionsMenu(Menu menu)

检查用户是否已登录。如果是,则使用与您使用的相同技术显示用户名,否则显示登录菜单项。

希望这能解决您的大问题。

关于android - 在 Actionbarsherlock 中更新 Actionbar 菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14214643/

相关文章:

delphi - 如何在不关闭菜单的情况下选择菜单项?

google-apps-script - 将带有图标的项目添加到 Google Apps 脚本的菜单中

android - 在外部存储器上保存数据

Android:滚动搜索栏时更改图像对比度和亮度

android - 操作栏 Sherlock NAVIGATION_MODE_LIST - dropdownListPreferredItemHeight 被忽略

android - 在带有选项卡的 SherlockFragmentActivity 中使用 PreferenceFragment

android - 操作栏外的下拉微调器? ( Ice Cream Sandwich 风格,带 ActionBarSherlock)

wpf - WPF MVVM : Find out on which header context menu has been clicked

android - 无法在 Flutter 中构建 .aab

android - 手动将行添加到光标中