这是我的代码:
@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());
}
但它返回空字符串。
这怎么可能?
答案 0 :(得分:1)
MenuItem
是一个界面。如果您尝试获得myLocationMenuItem.toString()
的实现,您将获得Object
的toString()实现。你想要的是实现MenuItem
(MenuItemImpl
)的类的toString()的实现,这是
@Override
public String toString() {
return mTitle != null ? mTitle.toString() : null;
}
答案 1 :(得分:0)
如果您还没有查看以下页面,这可能会对您有所帮助: http://developer.android.com/reference/android/view/MenuItem.html