Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
482 views
in Technique[技术] by (71.8m points)

java - Android: Inflate menu (add items to action bar) only on click of a button

I am trying to inflate a menu only onclick of a button in android. How do i achieve it without creating it automatically by calling onCreateOptionsMenu. I want the menu to appear only after button is click.

enter image description here

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

First add this icon in you action R.menu... file and set the visibility as false.

Have a boolean instance variable in our java file.

private boolean isTickVisible = false;

Then you need to override OnPrepareOptions menu like below and set the visibility of the tick menu.

 @Override
    public void onPrepareOptionsMenu(Menu menu) {
        super.onPrepareOptionsMenu(menu);

        MenuItem someMenuItem = menu.findItem(R.id.tick_menu_item);
        someMenuItem.setVisible(isTickVisible);
    }

Finally onClick event of your button do the following :

isTickVisible = true;
invalidateOptionsMenu(); //this will redraw your menu.

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...