adapter.notifyDataSetChanged()
完成。
但是actionbar
需要做些什么呢?我的要求是......
我在所有活动上都有我的操作栏。假设用户点击login(action item on actionbar)
活动4th
,他将被重定向到login from
第四个活动。提交详细信息后,我正在完成登录活动并将用户重定向到5th activity
。 In the 5th activity I am displaying username(as an action item) instead of login option
在共享偏好和操作的帮助下。
但实际问题在这里--->当我返回第4个活动时,会显示login
(操作项),而不是用户名。因为我没有对操作栏进行任何更新以更新上一个活动中的更改。这适用于backstack中的所有活动。在我看来,唯一的事情是在onResume()
方法中做一些事情,因为当活动从后台开始时,将调用此回调方法。但是该方法应该做些什么呢?希望我的问题是可以理解的。如果有人想要任何其他细节,请告诉我。如果有人帮我解决这个问题,我将非常感激。
注意:我不想在onResume()
中刷新我的活动,因为它是一个黑客攻击,而且更多会导致活动中的数据丢失。
答案 0 :(得分:4)
试试这个:
在所有片段Activity中,在onResume()中写这个。
@Override
protected void onResume() {
super.onResume();
this.invalidateOptionsMenu();
}
然后在
onCreateOptionsMenu(Menu menu)
检查用户是否已登录。如果是,则使用您使用的相同技术显示用户名,否则显示login menuItem。
希望这能解决你的大问题。
答案 1 :(得分:2)
试试这个:
@Override
protected void onResume() {
super.onResume();
supportInvalidateOptionsMenu();
}