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 .

  • ActionBar falta después de cambiar a API21 AppCompat
  • Cómo agregar una línea entre los elementos en una barra de título de aplicación de menú en Android Studio?
  • Barra de acciones hasta navegación con fragmentos
  • Cómo cambiar el color de TabIndicater en PagerTabStrip
  • Android, barra de progreso en ActionBar, y eliminar el progreso de círculo
  • Android - ActionBar SearchVista sugerencias con un array String simple
  • ShareActionProvider no se puede hacer clic y no se procesa correctamente en el primer procesamiento
  • Tablas de la barra de herramientas de Android en la parte inferior de la pantalla
  • Forzar el menú de desbordamiento en ActionBarSherlock
  • ProgressBar en ActionBar en Android L Vista previa
  • Animación de la barra de herramientas Android AppCompat-v21
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.