How to implement a onMenuItemClickListener in android

匆匆过客 提交于 2021-02-18 05:47:46

问题


How do I implement an onMenuItemClickListener?

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);

    getMenuInflater().inflate(R.menu.gameoptions, menu);
    menu.findItem(R.id.menu_item).setIntent(new Intent(this, QMenuActivity.class));
    menu.findItem(R.id.back_item).setOnMenuItemClickListener;
    return true;
}

I want the back_item once clicked on to call a function within the page, how do I do it?


回答1:


I'm assuming you want to access a non-static function in your activity. Without too much information from you, try something like what's below:

    @Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuItem item = menu.findItem(R.id.back_item);
    item.setOnMenuItemClickListener(new OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            YourActivity.this.someFunctionInYourActivity();
            return true;
        }
    });
    return true;
}



回答2:


Here is the way I do it if I am going to inflate an xml menu.

I first inflate the menu when it is called:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.test, menu);
    return true;
}

Then wait for a press and check which ID was pressed:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
        case R.id.item1:
            ... code ...
            return true;
        case R.id.item2:
            ... code ...
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

Hope this helps!




回答3:


item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener()

change the code to include MenuItem after new.



来源:https://stackoverflow.com/questions/4691788/how-to-implement-a-onmenuitemclicklistener-in-android

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!