2014-02-21 51 views
0

我在我的應用程序中有三個菜單項,我想更改所有項目的背景圖像,文本顏色和字體,但沒有任何更改。爲什麼我的菜單項不能取代我的自定義設計(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 = 「總是」,請讓我知道,這是什麼問題?建議我一些好的解決方案。

回答

0

正如我看到你想創建和選項菜單,正在做一些改變你的文字,顏色,BG圖像等。當你點擊和菜單選項的權利?

首先爲什麼你有兩個onCreateOptionsMenu函數,是第一個超級類的活動擴展類,所以canu也可以擴展它。我認爲你可以用簡單的方式做到這一點。

創建菜單項,並把你的@Override (d) onCreateOptionsMenu功能在你的類並調用不同的方法,在做不同的工作,例如changeColor()ABCchangeThem()XYZchangeBGImage()qwe等等...

讓我給你一些鏈接,這樣做,我

http://www.mustafasevgi.com/2012/08/android-de-optionsmenu-olusturma.html http://www.thegeekstuff.com/2013/12/android-app-menus/這個網站有更多

只檢查這些網站,如果你有時間..

你可以看到,他們呼籲在選擇方法切換塊的情況下每個動作。

btw iam不是和android開發人員,但好奇心。

希望有幫助

關於。

相關問題