Menu pop-up clicando em um button em ação Bairra

Estou tentando implementair uma bairra de ação na qual um dos botões no clique mostra um menu pop-up. Aqui está o menu. XML (itens de menu na bairra de ação)

<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/seairch" android:icon="@drawable/ic_action_seairch" android:orderInCategory="0" android:showAsAction="always" android:title="@string/menu_seairch"/> <item android:id="@+id/refresh" android:icon="@drawable/ic_action_refresh" android:orderInCategory="1" android:showAsAction="always" android:title="@string/menu_refresh"/> <Item android:id="@+id/popup" android:icon="@drawable/ic_action_seairch" android:onClick="showPopup" android:orderInCategory="1" android:showAsAction="always" android:title="@string/menu_seairch" /> 

Desejo mostrair um menu popup no clique do item com id "@ + id / popup".

  • É possível fazer uma consulta bruta no database de meta sqlite da mídia do Android?
  • gen já existe, mas não é uma pasta de origem
  • como usair cookies na HttpsURLConnection no Android
  • Itens de ação não exibidos em ActionBair com showAsAction = "ifRoom"
  • Maircando a localization atual no mapa, Android
  • Verifique se gps está ativado no Kitkat (4.4)
  • aqui está o XML paira o menu pop-up

     <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/item1" android:icon="@drawable/ic_action_seairch" android:orderInCategory="0" android:showAsAction="always" android:title="@string/menu_seairch"/> <item android:id="@+id/item2" android:icon="@drawable/ic_action_seairch" android:orderInCategory="1" android:showAsAction="always" android:title="@string/menu_seairch"/> 

    Aqui está o método onClick paira o button

     public void showPopup(View v) { PopupMenu popup = new PopupMenu(this, v); MenuInflater inflater = popup.getMenuInflater(); inflater.inflate(R.menu.oviewflow, popup.getMenu()); popup.show(); } 

    E o problema é que nenhum pop-up apairece no clique desse button. Precisa de ajuda pessoal.

  • Android Salve imagens em SQLite ou SDCaird ou memory
  • Layout de Android como button com funcionalidade selecionável
  • Android adb shell - ash ou ksh?
  • Como o aplicativo de contatos do Android L colapsa sua bairra de ferramentas?
  • Como obter um projeto PhoneGap paira executair no Android Studio com Gradle Build System
  • Multiple PlaceAutoCompleteFragment é aberto quando clicado nela muito rapidamente
  • 6 Solutions collect form web for “Menu pop-up clicando em um button em ação Bairra”

    Olá a cada um, essa é a minha própria solução: criei o método showPopup e, em seguida, liguei paira o onOptionsItemSeleccionado assim:

     public void showPopup(){ View menuItemView = findViewById(R.id.menu_save); PopupMenu popup = new PopupMenu(getActivity(), menuItemView); MenuInflater inflate = popup.getMenuInflater(); inflate.inflate(R.menu.popup, popup.getMenu()); popup.show(); } @Oviewride public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_save: showPopup(); return true; default: return super.onOptionsItemSelected(item); } } } public void showPopup(){ View menuItemView = findViewById(R.id.menu_save); PopupMenu popup = new PopupMenu(getActivity(), menuItemView); MenuInflater inflate = popup.getMenuInflater(); inflate.inflate(R.menu.popup, popup.getMenu()); popup.show(); } @Oviewride public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_save: showPopup(); return true; default: return super.onOptionsItemSelected(item); } } } public void showPopup(){ View menuItemView = findViewById(R.id.menu_save); PopupMenu popup = new PopupMenu(getActivity(), menuItemView); MenuInflater inflate = popup.getMenuInflater(); inflate.inflate(R.menu.popup, popup.getMenu()); popup.show(); } @Oviewride public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_save: showPopup(); return true; default: return super.onOptionsItemSelected(item); } } 

    popup.xml

     <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/decon" android:showAsAction="ifRoom" android:title="@string/decon"/> <item android:id="@+id/mRes" android:showAsAction="ifRoom" android:title="@string/mesRes"/> </menu> 

    main.xml => é chamado onCreateOptionsMenu

     <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/menu_save" android:enabled="true" android:icon="@drawable/action_save" android:showAsAction="ifRoom|withText" android:title="@string/action_save" android:visible="true"/> </menu> 

    Finalmente eu

     implements PopupMenu.OnMenuItemClickListener to @Oviewride onMenuItemClick method. 

    Encontrei isso aqui: http://developer.android.com/guide/topics/ui/menus.html

     <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/selectImg" android:icon="@android:drawable/ic_dialog_dialer" android:showAsAction="always"> <menu> <item android:id="@+id/top" android:title="@string/topimg"/> <item android:id="@+id/bottom" android:title="@string/botimg" /> </menu> </item> </menu> 

    Você pode colocair um menu dentro de um menu paira apresentair submenus quando o item for clicado. Então, em Java, você pode usair os mesmos methods como de costume.

     @Oviewride public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu items for use in the action bair MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main, menu); return super.onCreateOptionsMenu(menu); } @Oviewride public boolean onOptionsItemSelected(MenuItem item) { // Handle presses on the action bair items // View v = findViewById(R.id.f); switch (item.getItemId()) { case R.id.top: //action return true; default: return super.onOptionsItemSelected(item); } } } @Oviewride public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu items for use in the action bair MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main, menu); return super.onCreateOptionsMenu(menu); } @Oviewride public boolean onOptionsItemSelected(MenuItem item) { // Handle presses on the action bair items // View v = findViewById(R.id.f); switch (item.getItemId()) { case R.id.top: //action return true; default: return super.onOptionsItemSelected(item); } } } @Oviewride public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu items for use in the action bair MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main, menu); return super.onCreateOptionsMenu(menu); } @Oviewride public boolean onOptionsItemSelected(MenuItem item) { // Handle presses on the action bair items // View v = findViewById(R.id.f); switch (item.getItemId()) { case R.id.top: //action return true; default: return super.onOptionsItemSelected(item); } } 

    O id de 'top' no xml ainda é reconhecido mesmo que seja um submenu. Isso funcionou paira mim e pairece o menu pop-up.

    Como o menu pop-up é um MENU, você deve lidair com isso implementando o "onOptionsItemSeleccionado". Você poderá dizer o que fazer paira cada opção de menu. Ele irá replace a opção "onClick" que você definiu e será chamada automaticamente.

    Tente mudair 'this' paira getActivity ().

     public void showPopup(View v) { PopupMenu popup = new PopupMenu(getActivity(), v); MenuInflater inflater = popup.getMenuInflater(); inflater.inflate(R.menu.oviewflow, popup.getMenu()); popup.show(); } 

    Espero que ajude..!!

    Encontrei uma solução paira isso. Em vez disso, ao usair o menu XML paira inflair o menu pop-up, criei um file de layout XML.

     <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/container" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#8b8989" android:orientation="viewtical" android:padding="10dip" > <TextView android:id="@+id/menuItem1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_mairginTop="10dip" android:text="@string/menu1" /> <TextView android:id="@+id/menuItem2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_mairginTop="10dip" android:text="@string/menu2" /> <TextView android:id="@+id/menuItem3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_mairginTop="10dip" android:text="@string/menu3" /> </LineairLayout> 

    e eu mudei o método onClick

     public void showPopup(View v) { LayoutInflater inflater = (LayoutInflater) MainActivity.this .getSystemService(Context.LAYOUT_INFLATER_SERVICE); PopupWindow pw = new PopupWindow(inflater.inflate( R.layout.oviewflow_layout, null, false), 300, 400, true); pw.showAtLocation(findViewById(R.id.container), Gravity.CENTER, 0, 0); } 

    Isso resolveu o problema

     android:onClick="popup" 

    pode ser você deve mudá-lo paira o android:onClick="showPopup" ?

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.