开发者

Intercepting Android Menu button

I have an app in which I want to display my own menu activity when the user presses the menu button. I am using the onCreateOptionsMenu method to launch my activity, returning false so that no menu is shown. This is my code:

Inte开发者_运维技巧nt intentMenu = new Intent(this, ActivityMenu.class);
startActivityForResult(intentMenu, 0);
return false;

This works, but only the first time the menu button is pressed. I understand this method is only called once. How can I get it to be called every time the user presses the menu button? Or should I be going for a different approach?


Do not use onCreateOptionsMenu(), wrong place. Here is how you do it by overriding onKeyDOwn() method in your Activity:

@Override
public boolean onKeyDown (int keyCode, KeyEvent event) {

    if (keyCode == KeyEvent.KEYCODE_MENU || keyCode == KeyEvent.KEYCODE_BACK) {
        startActivityForResult(new Intent(this, ActivityMenu.class), 0);

        return true;
    }

    return super.onKeyDown( keyCode, event );
}


create your menu class look like this:

public class GlobalMenu extends Activity

{

public boolean onCreateOptionsMenu(Menu menu) 

{

       MenuInflater inflater = getMenuInflater();

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

       return true;

}

public boolean onOptionsItemSelected(MenuItem item)

{

    switch(item.getItemId())

    {

        case R.id.GlobalSettings:

                           // Write code to perform action
            break;

        case R.id.Globalrefresh:

                           // Write code to perform action
            break;

        case R.id.Globalexit:

                           // Write code to perform action
            break;

        default:

    }

    return true;

}



}

Now extend this class from your main Activity in which you wont to show menu , when you click on menu button.

And create .xml file look like :

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜