メニュー オプションの背景色を変更したい。そして、私はエラーが発生します:
FATAL EXCEPTION: main
java.lang.IllegalStateException: A factory has already been set on this LayoutInflater
at android.view.LayoutInflater.setFactory(LayoutInflater.java:277)
私はこのコードを使用します:
private void setMenuBackground() {
getLayoutInflater().setFactory(new Factory() {
@Override
public View onCreateView (String name, Context context, AttributeSet attrs) {
if (name.equalsIgnoreCase("com.android.internal.view.menu.IconMenuItemView")) {
try {
LayoutInflater f = getLayoutInflater();
final View view = f.createView(name, null, attrs);
new Handler().post( new Runnable() {
public void run () {
view.setBackgroundColor(Color.GRAY);
}
});
return view;
}
catch (InflateException e) {
}
catch (ClassNotFoundException e) {
}
}
return null;
}
});
}
いくつかの答えを見つけましたが、役に立ちません。
この問題を解決するにはどうすればよいですか? ありがとう。