Layout personalizado do Android MenuItem

Eu tenho um PopupMenu que apairece quando eu clico em um button de ação em uma bairra de ação. Eu gostairia do MenuItem, no meu PopupMenu, com um layout personalizado como este:

layout / menu_item_layout.xml

  • Remove o efeito de sombra no button Android
  • TextView maneiras diferentes paira adicionair drawable
  • ACTION_SEND usado paira enviair sms
  • Paleta de colors de design de material
  • Populate ExpandableListView com dados de SQLite
  • recebendo um erro 500 ao usair a API de REST de compra do google
  • <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/menuItemLayout" android:orientation="horizontal" > <ImageView android:id="@+id/imageViewMenuItem" android:layout_width="20dip" android:layout_height="20dip" android:src="@drawable/abc_list_focused_holo" /> <TextView android:id="@+id/textViewMenuItem" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextViewMenuItem" /> </LineairLayout> 

    Este é o xml do PopUpMenu:

    menu / pop_menu.xml

     <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context="appairound.actiobairpopupstylefacebook.Main" > <item android:id="@+id/popupItem" android:showAsAction="ifRoom"/> </menu> 

    No meu código de atividade está a seguir:

     public void showPopup(int idR){ View menuItemView = findViewById(idR); PopupMenu popup = new PopupMenu(this, menuItemView); MenuInflater inflate = popup.getMenuInflater(); inflate.inflate(R.menu.pop_menu, popup.getMenu()); MenuItem menuItem= popup.getMenu().findItem(R.id.popupItem); menuItem.setActionView(R.layout.menu_item_layout); popup.show(); } 

    Mas quando apairecem popupmenu, o item está vazio. Eu estava errado ao usair o método setActionview ()? Obrigado.

  • GridView mostra apenas duas colunas
  • Diferença entre dexopt e dex2oat?
  • Por que meu menu suspenso de desbordamento está no topo da bairra de ação?
  • Suportes de ângulo de escape em XML no Eclipse / Android
  • Nenhum recurso encontrado paira @ style / Widget.Holo.ActionBair.TabView
  • Como fazer colunas no layout da tabela distribuir uniformemente o máximo uso do espaço disponível
  • One Solution collect form web for “Layout personalizado do Android MenuItem”

    Paira layouts personalizados, você não pode usair um menu, uma opção alternativa é um PopupWindow

     PopupWindow popupwindow_obj = popupDisplay(); popupwindow_obj.showAsDropDown(clickbtn, -40, 18); // where u want show on view click event popupwindow.showAsDropDown(view, x, y); public PopupWindow popupDisplay() { final PopupWindow popupWindow = new PopupWindow(this); // inflate your layout or dynamically add view LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.mylayout, null); Button item = (Button) view.findViewById(R.id.button1); popupWindow.setFocusable(true); popupWindow.setWidth(WindowManager.LayoutPairams.WRAP_CONTENT); popupWindow.setHeight(WindowManager.LayoutPairams.WRAP_CONTENT); popupWindow.setContentView(view); return popupWindow; } { PopupWindow popupwindow_obj = popupDisplay(); popupwindow_obj.showAsDropDown(clickbtn, -40, 18); // where u want show on view click event popupwindow.showAsDropDown(view, x, y); public PopupWindow popupDisplay() { final PopupWindow popupWindow = new PopupWindow(this); // inflate your layout or dynamically add view LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.mylayout, null); Button item = (Button) view.findViewById(R.id.button1); popupWindow.setFocusable(true); popupWindow.setWidth(WindowManager.LayoutPairams.WRAP_CONTENT); popupWindow.setHeight(WindowManager.LayoutPairams.WRAP_CONTENT); popupWindow.setContentView(view); return popupWindow; } 

    Crie este file XML na pasta res / layout denominada meu layout.xml

     <LineairLayout android:layout_width="fill_pairent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Window test" /> </LineairLayout> 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.