MenuItem的toString方法返回空字符串,为什么?

时间:2016-03-24 09:20:52

标签: java android android-menu

这是我的代码:

 @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        super.onCreateOptionsMenu(menu, inflater);
        inflater.inflate(R.menu.tracking_menu, menu);

        myLocationMenuItem = menu.getItem(0);

        if (myLocationMenuItem == null) {
            Log.i("MenuItemLogging", "instance is:  null");
        } else {
            Log.i("MenuItemLogging", "instance is not null: " + myLocationMenuItem.toString());
        }
    }

这是日志:

  

03-24 10:19:06.215:I / MenuItemLogging(8519):实例不为空:

并且不是myLocationMenuItem.toString()的返回值的任何字符串。

MenuItem类与Object具有相同的toString:

public String toString() {
        return getClass().getName() + '@' + Integer.toHexString(hashCode());
    }

但它返回空字符串。

这怎么可能?

2 个答案:

答案 0 :(得分:1)

MenuItem是一个界面。如果您尝试获得myLocationMenuItem.toString()的实现,您将获得Object的toString()实现。你想要的是实现MenuItemMenuItemImpl)的类的toString()的实现,这是

@Override
public String toString() {
    return mTitle != null ? mTitle.toString() : null;
}

答案 1 :(得分:0)

如果您还没有查看以下页面,这可能会对您有所帮助: http://developer.android.com/reference/android/view/MenuItem.html