我使用ActivityCompat.invalidateOptionsMenu(MainActivity.this);这样我的菜单项"刷新"可以自动启用/禁用而无需使用必须触摸"菜单"选项(想象用户离开菜单...我需要"刷新"菜单项自动禁用和启用自己).
ActivityCompat.invalidateOptionsMenu(MainActivity.this)Android 11+ 的工作正常.但是我可以用什么来安装Android API <11?:S我搜索了这么多,但我找不到答案.有人可以帮我这个吗?
这适用于Android API 11+,使用onPrepareOptionsMenu和ActivityCompat.invalidateOptionsMenu(MainActivity.this).问题是尝试在Android API <11中完成.
这是我的onPrepareOptionsMenu方法:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if(menuRefreshEnable){
menu.getItem(0).setEnabled(true);
}
if(!menuRefreshEnable){
menu.getItem(0).setEnabled(false);
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
ActivityCompat.invalidateOptionsMenu()不回调onPrepareOptionsMenu();它只是直接更新菜单.只需放一些Log.d()并自己检查.
这对我有用(我正在使用API 8):
private Menu mMenu;
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.track_fragment, menu);
mMenu = menu;
}
...
private void someMethod() {
...
if (mMenu != null) {
MenuItem item = mMenu.findItem(R.id.new_track);
if (item != null) {
item.setVisible(false);
ActivityCompat.invalidateOptionsMenu(this.getActivity());
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
我someMethod()甚至在几个地方接到电话onCreateOptionsMenu(),所以我必须检查mMenu != null.
| 归档时间: |
|
| 查看次数: |
20298 次 |
| 最近记录: |