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í.

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:

Introduzca aquí la descripción de la imagen

Imagen 2:

Introduzca aquí la descripción de la imagen

Por lo menos alguien puede ayudar a lograr el segundo. Tengo una idea sobre el primer problema.

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 .

  • Personalización del spinner de Actionbar
  • Personalización de la animación de navegación
  • ¿Puede Android Actionbar ser colocado verticalmente?
  • LeftNavBar crea una barra negra en la parte superior de la actividad
  • Cómo cambiar la posición de los elementos del menú en la barra de acciones
  • Android - Cambiar el Botón Atrás del Botón de Navegación de ActionBar
  • Android 4.0 / ICS - Icono de la aplicación en la barra de acciones no se puede hacer clic
  • ¿Cómo agregar la barra de acción de la biblioteca de soporte en PreferenceActivity?
  • Cómo centralizar alinear el título de ActionBar en Android?
  • NullPointerException Causado por getActionBar ()
  • NoSuchMethodError al llamar a MenuItem.collapseActionView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.