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にファクトリがすでに設定されています」が表示されます。私は何か間違ったことをしていますか?