对于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:已在此LayoutInflater上设置工厂”。我做错了吗?