사용자 정의 메뉴를 구현하려고했습니다. 나는 this 질문에 주어진 답을 사용했다. 내 코드에서 이름은 ExpandedMenuItem이지만 모든 예제에서는 IconMenuItemView입니다. 거기서 무슨 일이 일어나고있는거야? 이 문제를 어떻게 해결할 수 있습니까?안드로이드에서 메뉴 항목의 사용자 글꼴 설정
여기 내 코드입니다.
java.lang.ClassCastException:com.android.internal.view.menu.ExpandedMenuView cannot be cast to android.widget.TextView
내가 텍스트 뷰에이 캐스팅 수있는 방법 있음을
public class MyActivity extends PreferenceActivity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.proximity_alert_menu, menu);
getLayoutInflater().setFactory(new Factory() {
@Override
public View onCreateView(String name, Context context, AttributeSet attrs) {
//if(name.equalsIgnoreCase("com.android.internal.view.menu.MenuItem")) {}
try {
LayoutInflater li = LayoutInflater.from(context);
final View view = li.createView(name, null, attrs);
new Handler().post(new Runnable() {
public void run() {
TextView tView = (TextView) view;
tView.setTypeface(Config.set_font);
tView.setTextColor(Color.RED);
}
});
return view;
} catch (InflateException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
});
return super.onCreateOptionsMenu(menu);
}
}
예외 쇼?
사과를 오렌지 주조하려고합니다. 'ExpandedMenuView'를'TextView'로 성공적으로 캐스트하려면'ExpandedMenuView'가'TextView'를 확장해야합니다. – curtisLoew
예. 이것이 문제입니다. 어떻게 해결할 수 있을까요? 나는'TextView'를'name'으로 형변환 할 수있는 * View *를 얻는 것을 의미합니까? 왜 내가이 'ExpandedMenuView'를 받았는지 아십니까? –