如何在安卓中实现onMenuItemClickListener

11

我该如何实现一个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;
}

我想一旦单击 back_item,就在页面内调用一个函数,该怎么做?


重新格式化你的问题,否则你现在的源代码将无法编译。 - Kiril Kirilov
3个回答

16

我假设您想要访问活动中的非静态函数。 您没有提供太多信息,因此请尝试像下面这样的代码:

    @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;
}

1
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener()

将代码更改以在 "new" 后包含 "MenuItem"。保留HTML格式,不做解释。

0
你也可以使用onOptionsItemSelected方法
 @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));
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.back_item:
            // Call your function here
            yourFunction();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

private void yourFunction() {
    // Your function's code here
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接