我尝试实现自定义菜单,使用了这个问题中给出的答案。在我的代码中,名称是ExpandedMenuItem,但在所有示例中都是IconMenuItemView。发生了什么?我该如何纠正?
以下是我的代码。
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);
}
}
异常表明
java.lang.ClassCastException:com.android.internal.view.menu.ExpandedMenuView cannot be cast to android.widget.TextView
如何将此内容显示在TextView中?
ExpandedMenuView
成功转换为TextView
,ExpandedMenuView
必须扩展TextView
,但它并没有。 - TadejTextView
的View作为name
?你知道我为什么会收到这个ExpandedMenuView
吗? - Kelum Deshapriya