Rya*_*n R 2 android android-appcompat android-menu
我换我Activity到AppCompatActivity现在呼吁invalidateOptionsMenu()在onOptionsItemSelected()不再更新菜单项,因为他们以前那样.onPrepareOptionsMenu()不叫.
我添加了以下依赖项
compile "com.android.support:appcompat-v7:22.2.1"
Run Code Online (Sandbox Code Playgroud)
并更新了我Activity的AppCompatActivity(注意只在第一次调用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);
}
Run Code Online (Sandbox Code Playgroud)
编辑:我的设备正在运行Android M预览2.
nat*_*rio 15
您应该调用supportInvalidateOptionsMenu(),这是为了与支持库一起使用.
| 归档时间: |
|
| 查看次数: |
5414 次 |
| 最近记录: |