Android 选项导航到其他活动时,菜单停止显示
我的结构如下: 我的问题是,每当我从活动1、2或3转到子活动并返回到活动,选项菜单就会停止出现(无论是Android 选项导航到其他活动时,菜单停止显示,android,tabactivity,android-optionsmenu,Android,Tabactivity,Android Optionsmenu,我的结构如下: 我的问题是,每当我从活动1、2或3转到子活动并返回到活动,选项菜单就会停止出现(无论是onCreateOptions菜单还是onPrepareOptions菜单)。我的猜测是,这是因为当调用子活动时,活动会停止,然后当我返回到它们时,活动不会重新创建(onCreate不会被调用) 有没有办法在活动恢复时(在onResume中)强制调用oncreateoptions菜单 更新 我知道现在发生了什么。问题是,选项菜单是从选项卡活动调用的,而不是从其下的活动调用的。我需要运行活动的o
onCreateOptions菜单
还是onPrepareOptions菜单
)。我的猜测是,这是因为当调用子活动时,活动会停止,然后当我返回到它们时,活动不会重新创建(onCreate
不会被调用)
有没有办法在活动恢复时(在onResume
中)强制调用oncreateoptions菜单
更新
我知道现在发生了什么。问题是,选项菜单是从
选项卡活动
调用的,而不是从其下的活动调用的。我需要运行活动的onCreateOptions菜单
/onPrepareOptions菜单
,而不是选项卡activity
。我只需在我需要的每个活动中分别调用onCreateOptions菜单,然后分别更改每个活动的onCreateOptions菜单的上下文,以反映该情景活动已恢复,其OnCreateOptions菜单也已恢复…希望这有助于公共布尔OnCreateOptions菜单(菜单菜单){
super.onCreateOptions菜单(菜单)
是我使用的…如果这有帮助的话,可以查看我的问题“append.text at cursor in fragment”…我非常需要帮助解决了我的问题。问题是选项菜单是从
选项卡活动
调用的,而不是从它下面的活动调用的。我所做的是:
在我的选项卡活动中
:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.my_view, menu);
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
menu.clear();
inflater.inflate(R.menu.my_view, menu);
return true;
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
return getCurrentActivity().onMenuItemSelected(featureId, item);
}
在活动中:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
return super.onPrepareOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Do my work in the Activity
}
我只是在每个活动中使用它,我想让菜单选项说如果我在活动1中,我的菜单选项反映活动2,3当我在活动2中,我的菜单选项反映活动1,3等等,但是在每个有菜单的活动中,你必须输入代码,当你在活动之间切换时,你将始终有一个菜单……它对我有效,我没有知道这是否是最好的方法,但它对我有效,以及如何获取菜单对象(
onCreateOptions菜单(菜单)
)?抱歉,这不会添加任何新信息。我可以使选项菜单第一次出现,在活动外导航时出现问题
@Override
public boolean onCreateOptionsMenu(Menu menu) {
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
return super.onPrepareOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Do my work in the Activity
}