studio programacion opciones hacer como barra bar actionbar acciones android android-layout android-3.0-honeycomb android-actionbar android-spinner

programacion - menu overflow android studio



Cómo agregar un elemento desplegable en la barra de acciones (3)

En mi aplicación Android Honeycomb utilizo las pestañas como el estilo de navegación. Me gustaría agregar un elemento al lado del botón de desbordamiento, pero quiero que ese elemento sea una lista desplegable, y el usuario podrá seleccionar una opción allí, pero no relacionado con la navegación. ¿Cuál es la forma más fácil ya que estoy usando mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

¿Es posible hacerlo sin usar una vista personalizada?


Absolutamente la mejor y más simple respuesta que encontré hasta ahora está here .

Básicamente, no hay necesidad de diseño personalizado en este caso. Simplemente configure el actonViewClass:

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:yourapp="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/spinner" yourapp:showAsAction="ifRoom" yourapp:actionViewClass="android.widget.Spinner" /> <== this is all that''s required </menu>

Y luego adminístrelo enCreateOptionsMenu, como de costumbre:

@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_layout, menu); MenuItem item = menu.findItem(R.id.spinner); Spinner spinner = (Spinner) MenuItemCompat.getActionView(item); // get the spinner spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(onItemSelectedListener);

Esta es de lejos la solución más simple y limpia. Créditos a François Poyer, el autor original.


Funcionará solo como menú desplegable

<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <!--<item--> <!--android:id="@+id/save_contact"--> <!--android:icon="@drawable/edit_new"--> <!--android:title="Save Contact"--> <!--app:showAsAction="never" />--> <item android:id="@+id/send_money" android:icon="@drawable/edit_new" android:title="Send Money" app:showAsAction="never" /> <item android:id="@+id/request_money" android:icon="@drawable/edit_new" android:title="Request money" app:showAsAction="never" /> <item android:id="@+id/recharge" android:icon="@drawable/edit_new" android:title="Recharge" app:showAsAction="never" /> </menu>

fragmento interior

setHasOptionsMenu (verdadero)

@Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.chat_details_menu, menu); super.onCreateOptionsMenu(menu, inflater); }


Primera opción:

menu / options.xml:

<item android:icon="@drawable/ic_menu_sort" android:showAsAction="ifRoom"> <menu> <item android:id="@+id/menuSortNewest" android:title="Sort by newest" /> <item android:id="@+id/menuSortRating" android:title="Sort by rating" /> </menu> </item>

Segunda opción:

menu / options.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/menuSort" android:showAsAction="ifRoom" android:actionLayout="@layout/action_sort" /> </menu>

layout / action_sort.xml:

<Spinner xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/ic_menu_refresh" android:entries="@array/order" />

Documentos para recursos de menú: http://developer.android.com/guide/topics/resources/menu-resource.html