gpt4 book ai didi

Android ActivityGroup 菜单问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:33:45 26 4
gpt4 key购买 nike

我在使用 ActivityGroup 时遇到一个问题。我在 ActivityGroup 中有两个 Activity ,它们都使用菜单(覆盖 onCreateOptionMenu 和 onOptionsItemSelected)。

嗯,问题是当我按下菜单键时,组中的第二个 Activity 没有显示菜单。第一个 Activity 显示菜单效果很好。

对这个问题有什么想法吗?

我在 child Activity 中有这段代码:

    @Override
public boolean onCreateOptionsMenu(Menu menu) {
boolean result = super.onCreateOptionsMenu(menu);
menu.add(0, MENU_REFRESH, 0, R.string.menu_refresh).setIcon(R.drawable.ic_menu_refresh);
return result;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case MENU_REFRESH:
Log.d(TAG,"REFRESH");
refresh();
return true;
}
return super.onOptionsItemSelected(item);
}

最佳答案

另一种处理此问题的好方法是使用 ActivityGroup 的 LocalActivityManager。获取本地 Activity 管理器,获取当前 Activity ,并执行该 Activity 的适当方法:

public boolean onPrepareOptionsMenu(Menu menu) {
//super.onPrepareOptionsMenu(menu);
return getLocalActivityManager().getCurrentActivity()
.onCreateOptionsMenu(menu);
}

public boolean onCreateOptionsMenu(Menu menu) {
//super.onCreateOptionsMenu(menu);
return getLocalActivityManager().getCurrentActivity()
.onCreateOptionsMenu(menu);
}

public boolean onMenuItemSelected(int featureId, MenuItem item) {
//super.onMenuItemSelected(featureId, item);
return getLocalActivityManager().getCurrentActivity()
.onMenuItemSelected(featureId, item);
}

注意:使用此策略,您不得从子 Activity 调用 super.onCreateOptionsMenu - 这样做会导致堆栈溢出异常。我不确定调用父类(super class)的 on* 方法的目的是什么,因为我省略了它们并且没有看到任何负面结果。 (……还)

关于Android ActivityGroup 菜单问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3157406/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com