菜单项null ---> NullPointerException

时间:2015-04-09 16:30:55

标签: android menuitem

我会在按钮上添加一个数字,代表facebooks应用程序的通知数量。 我按照本主题中的第一个示例进行操作:

Actionbar notification count icon (badge) like Google has

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        MenuItem item = menu.findItem(R.id.badge);

        MenuItemCompat.setActionView(item, R.layout.feed_update_count);
        notifCount = (Button) MenuItemCompat.getActionView(item);

        notifCount.setText(String.valueOf(SingletonGrafica.getNumeroNotifica()));
        return super.onCreateOptionsMenu(menu);
    }

我打电话的时候:

MenuItem item = menu.findItem(R.id.badge);

我获得了NullPointer Exception.Anyone可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

您需要先创建菜单:

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the navigation_menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.navigation_menu, menu);
        return true;
    }

如果你想更新菜单,你应该在: 的 onPrepareOptionsMenu

如果您希望再次调用 onPrepareOptionsMenu 功能,可以调用 invalidateOptionsMenu ();

答案 1 :(得分:0)

您还可以添加代码

中的项目
@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuItem item = menu.add("Badge");MenuItemCompat.setActionView(item, R.layout.feed_update_count);
        return true;
    }