如何在android中实现onMenuItemClickListener

Beg*_*ner 8 android

我该如何实现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;
}
Run Code Online (Sandbox Code Playgroud)

我希望back_item一旦点击就可以调用页面中的函数,我该怎么做?

Mat*_*att 11

我假设你想要在你的活动中访问一个非静态函数.如果没有太多信息,请尝试以下内容:

    @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;
}
Run Code Online (Sandbox Code Playgroud)


Dan*_*anO 5

如果我要给xml菜单充气,我就是这样做的.

我在调用菜单时首先给菜单充气:

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

然后等待按下并检查按下了哪个ID:

@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);
    }
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!