gpt4 book ai didi

android - invalidateOptionsMenu() 不适用于 AppCompatActivity

转载 作者:太空狗 更新时间:2023-10-29 15:31:39 24 4
gpt4 key购买 nike

我换了我的 ActivityAppCompatActivity现在调用invalidateOptionsMenu()onOptionsItemSelected()不再像以前那样更新菜单项。 onPrepareOptionsMenu()不被调用。

我添加了以下依赖

compile "com.android.support:appcompat-v7:22.2.1"

并更新了我的 ActivityAppCompatActivity (注意只有在 invalidateOptionsMenu() 中第一次调用 onResume() 有效,其他两个无效):

public class MyActivity extends AppCompatActivity {

private boolean isStopSaved;

// ...

@Override
protected void onResume() {
super.onResume();

if (/* Check DB if star should be set */) {
isStopSaved = true;
} else {
isStopSaved = false;
}
invalidateOptionsMenu(); // This updates the menu as expected
}

@Override
public boolean onPrepareOptionsMenu(Menu menu) {

// ...

return super.onPrepareOptionsMenu(menu);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_schedule, menu);
return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_starred_add:
isStopSaved = true;
invalidateOptionsMenu(); // Does not update menu
break;

case R.id.menu_starred_remove:
isStopSaved = false;
invalidateOptionsMenu(); // Does not update menu
break;
}
return super.onOptionsItemSelected(item);
}

编辑:我的设备运行的是 Android M Preview 2。

最佳答案

你应该调用supportInvalidateOptionsMenu() ,旨在与支持库一起使用。

关于android - invalidateOptionsMenu() 不适用于 AppCompatActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31955171/

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