Configuración de la lista desplegable para el elemento de la barra de acciones
Estoy fijando la barra de acción y el artículo por el código debajo y la imagen respectiva1 se muestra. Cuando el usuario hace clic en mostrar elemento de acción de pantalla de marcador, va a otra actividad. En esa actividad quiero que aparezca otro elemento ( SELECT BOOKMARK TYPE ) en el lugar de SHOW BOOKMARK SCREEN . Así que estoy pensando en manejarlo con la clase abstracta mediante el establecimiento de las cosas respectivas a verdadero o falso como se muestra a continuación. Pero ahora soy incapaz de conseguir dos cosas.
1)
¿Cómo diferenciar en el caso 0 para ambos elementos de acción? Ya que estoy reemplazando el elemento de acción entre sí.
- Barra de acción de estilo personalizado no funciona en android 4
- Ocultar / mostrar MenuItem en el clic de la barra de acción android
- Cómo editar el menú de la barra de Acción de Fragmento
- Cómo agregar acciones a la parte superior de una división ActionBar
- Título en blanco en la barra de acción
2)
Cómo obtener el menú desplegable para ese SELECCIONAR TIPO DE MARCADOR como se muestra exactamente en la imagen 2 .
He visto pocos posts, pero como soy un poco nuevo en android, no puedo entenderlo y lo hago añadiendo el código extra a mi código actual. ¿Puedes ayudarme por esto? Los fragmentos de código son apreciados. Gracias por adelantado.
public abstract class ActionActivity extends SherlockActivity { protected boolean mIsShowBookmarkScreen = true; @Override public boolean onCreateOptionsMenu(Menu menu) { if(mIsShowBookmarkScreen) { menu.add("SHOW BOOKMARK SCREEN") .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); } else { menu.add(SELECT BOOKMARK TYPE); .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); } return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { //This uses the imported MenuItem from ActionBarSherlock switch(item.getItemId()) { case 0: Intent intent = new Intent(ActionActivity.this,BookmarkScreen.class); startActivity(intent); return true; } return false; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getSupportActionBar().setHomeButtonEnabled(true); } }
Imagen 1:
Imagen 2:
Por lo menos alguien puede ayudar a lograr el segundo. Tengo una idea sobre el primer problema.
- Cómo crear un elemento de nuevo en ActionBar?
- Mostrar menú emergente en el elemento `ActionBar` haga clic en
- Obtener el icono de navegación de la barra de herramientas
- El botón de inicio en la barra de acción no funciona en Lollipop
- Haga que las pestañas de ActionBar se desplacen cuando alcance límite, en lugar de crear una lista desplegable
- Swarm App Android - Acción
- Icono del lanzador de aplicaciones que se muestra en la barra de acción de una actividad
- Android: permanece espacio en blanco después de traducir la vista
1) Diferenciar utilizando instanceof
.
if (this instanceof ActivityA) { // start Intent A } else if (this instanceof ActivityB) { // start Intent B }
2) Agregue un Spinner
como un ActionView
personalizado.
<string-array name="items"> <item>SELECT BOOKMARK TYPE</item> <item>TYPE-1</item> <item>TYPE-2</item> <item>TYPE-3</item> </string-array>
MenuItem spinnerItem = menu.add(null); spinnerItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); IcsSpinner spinner = new IcsSpinner(this, null); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this, R.array.items, R.layout.sherlock_spinner_item); adapter.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item); spinner.setAdapter(adapter); spinner.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); spinnerItem.setActionView(spinner);
Tenga en cuenta que estoy usando el tipo de IcsSpinner
privado aquí para crear el mismo aspecto en SDK Versión <4.0. Vea esta respuesta para más detalles.
Si desea personalizar aún más el Spinner
, probablemente necesitará crear su propio Adapter
.
- Pestañas de ActionBar con ViewPager y diseño del marco
- C #: método de anulación en la inicialización