MenuItem 的 toString 方法 returns 空字符串,为什么?
MenuItem's toString method returns empty String, why?
这是我的代码:
@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): instance is not null:
并且myLocationMenuItem.toString()的return值没有任何字符串。
MenuItem class 与对象具有相同的 toString:
public String toString() {
return getClass().getName() + '@' + Integer.toHexString(hashCode());
}
但它 return 是空字符串。
这怎么可能?
如果您还没有看过以下页面,这可能对您有所帮助:
http://developer.android.com/reference/android/view/MenuItem.html
MenuItem
是一个接口。如果您尝试获取 myLocationMenuItem.toString()
的实现,您将获得 Object
的 toString() 实现。你要的是实现了MenuItem
(MenuItemImpl
)的class的toString()的实现,也就是
@Override
public String toString() {
return mTitle != null ? mTitle.toString() : null;
}
这是我的代码:
@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): instance is not null:
并且myLocationMenuItem.toString()的return值没有任何字符串。
MenuItem class 与对象具有相同的 toString:
public String toString() {
return getClass().getName() + '@' + Integer.toHexString(hashCode());
}
但它 return 是空字符串。
这怎么可能?
如果您还没有看过以下页面,这可能对您有所帮助: http://developer.android.com/reference/android/view/MenuItem.html
MenuItem
是一个接口。如果您尝试获取 myLocationMenuItem.toString()
的实现,您将获得 Object
的 toString() 实现。你要的是实现了MenuItem
(MenuItemImpl
)的class的toString()的实现,也就是
@Override
public String toString() {
return mTitle != null ? mTitle.toString() : null;
}