0

我有一个非常烦人的问题,我在三星(s3)设备上进行测试,一切正常,然后我使用 LG 设备和 OS 4.0,当我尝试打开我的应用程序时,我在以下方法中遇到了 stackoverflowerror

public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.actions_menu, menu);   
}

我的基本活动从android.support.v7扩展ActionBarActivity

有人可以帮忙吗?

编辑 1

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.actions_menu, menu);

    MenuItem editItem = menu.findItem(R.id.action_edit);
    MenuItem saveItem = menu.findItem(R.id.action_save);
    MenuItem deleteItem = menu.findItem(R.id.action_delete);

    editItem.setVisible(isEditEnable());
    saveItem.setVisible(isSaveEnable());
    deleteItem.setVisible(isDeleteEnable());

    invalidateOptionsMenu();
    return true;
}

异常发生在getMenuInflater().inflate(R.menu.actions_menu, menu);

4

1 回答 1

2

看起来你return onCreateOptionsMenu();在充气后调用菜单。
而只是使用return true;

更新:
你正在打电话invalidateOptionsMenu();,我认为会onCreateOptionsMenu()再次打电话。
删除它并更改您的菜单onPrepareOptionMenu(),无需调用invalidateOptionsMenu()

于 2014-09-22T18:42:47.790 回答