1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > android 动态 修改图标 android-动态更改ActionBar中的图标

android 动态 修改图标 android-动态更改ActionBar中的图标

时间:2018-11-15 12:46:13

相关推荐

android 动态 修改图标 android-动态更改ActionBar中的图标

除了删除它们之外,您还可以隐藏不想显示的按钮。

例如:

private boolean isPlaying;

MenuItem mPlayMenuItem;

MenuItem mPauseMenuItem;

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu items for use in the action bar

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.actionbarlogic, menu);

mPlayMenuItem = menu.findItem(R.id.action_play);

mPauseMenuItem = menu.findItem(R.id.action_pause);

return super.onCreateOptionsMenu(menu);

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.action_play:

isPlaying = true;

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {

this.invalidateOptionsMenu();

}

return true;

case R.id.action_pause:

isPlaying = false;

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {

this.invalidateOptionsMenu();

}

return true;

default:

return super.onOptionsItemSelected(item);

}

}

@Override

public boolean onPrepareOptionsMenu (Menu menu) {

super.onPrepareOptionsMenu(menu);

if (isPlaying) {

mPlayMenuItem.setVisible(false); // hide play button

mPauseMenuItem.setVisible(true); // show the pause button

} else if (!isPlaying) {

mPlayMenuItem.setVisible(true); // show play button

mPauseMenuItem.setVisible(false); // hide the pause button

}

return true;

}

请注意,这是:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {

this.invalidateOptionsMenu();

}

需要更新操作栏。 在3.0设备之后,操作栏不会自动更新。 因此,您必须手动告诉它调用“ OnPrepareOptionsMenu(Menu)”,以便它将通过调用“ Activity.invalidateOptionsMenu()”来刷新项目。

希望这可以帮助!

参考:[/reference/android/app/Activity.html#onPrepareOptionsMenu(android.view.Menu)]

[/reference/android/support/v4/app/ActivityCompat.html#invalidateOptionsMenu(android.app.Activity)]

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。