我在我的應用程序中有三個菜單項,我想更改所有項目的背景圖像,文本顏色和字體,但沒有任何更改。爲什麼我的菜單項不能取代我的自定義設計(Android)?
這是下面的代碼。
Java代碼的 - :
public boolean onCreateOptionsMenu(android.view.Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.custom_menu, menu);
getLayoutInflater().setFactory(new Factory()
{
public View onCreateView(String name, final Context context,
AttributeSet attrs)
{
if (name.equalsIgnoreCase("com.android.internal.view.menu.IconMenuItemView"))
{
try
{
LayoutInflater li = LayoutInflater.from(context);
final View view = li.createView(name, null, attrs);
new Handler().post(new Runnable()
{
public void run()
{
((TextView) view).setTextSize(30);
Typeface face = Typeface.createFromAsset(getAssets(),"fonts/arialbd.ttf");
((TextView) view).setTypeface(face);
((TextView) view).setBackgroundResource(R.drawable.white6);
((TextView) view).setTextColor(Color.BLUE);
}
});
return view;
}
catch (InflateException e)
{
}
catch (ClassNotFoundException e)
{
}
}
return null;
}
});
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.abc:
break;
case R.id.xyz:
break;
case R.id.exit:
break;
}
return false;
}
XML菜單代碼 - :
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/abc"
android:orderInCategory="10"
android:showAsAction="always"
android:title="ABC"/>
<item
android:id="@+id/xyz"
android:orderInCategory="10"
android:showAsAction="always"
android:title="XYZ"/>
<item
android:id="@+id/exit"
android:orderInCategory="10"
android:showAsAction="always"
android:title="Andi"/>
</menu>
,我想保留所有的機器人:showAsAction = 「總是」,請讓我知道,這是什麼問題?建議我一些好的解決方案。