对于 android 2.2 及更高版本,我必须将菜单选项的背景颜色更改为黑色,我尝试使用给出的解决方案:
protected void setMenuBackground(){
// Log.d(TAG, "Enterting setMenuBackGround");
getLayoutInflater().setFactory( new Factory() {
public View onCreateView(String name, Context context, AttributeSet attrs) {
if ( name.equalsIgnoreCase( "com.android.internal.view.menu.IconMenuItemView" ) ) {
try { // Ask our inflater to create the view
LayoutInflater f = getLayoutInflater();
final View view = f.createView( name, null, attrs );
new Handler().post( new Runnable() {
public void run () {
// sets the background color
view.setBackgroundResource(R.color.black);
// sets the text color
((TextView) view).setTextColor(Color.WHITE);
// sets the text size
((TextView) view).setTextSize(18);
}
} );
return view;
}
catch ( InflateException e ) {}
catch ( ClassNotFoundException e ) {}
}
return null;
}
});
}
但它显示致命异常错误 "04-27 17:03:38.831: E/AndroidRuntime(923): java.lang.IllegalStateException: A factory has been set on this LayoutInflater" 。难道我做错了什么 ??