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í.
- ¿Cuál es el color hexadecimal predeterminado de la barra de acción Holo.Light.DarkActionBar?
- Cómo cambiar el color de fondo del título de ActionBar?
- Java.lang.ClassCastException: android.view.AbsSavedState $ 1 no se puede convertir en android.support.v7.widget.Toolbar $ SavedState
- Los estilos de homeAsUpIndicator no se aplican en el proyecto predeterminado de Android Studio
- ¿Ha cambiado el título en el cambio de orientació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 puedo personalizar el color y el texto del modo de acción?
- El icono ActionBarDrawerToggle () no se puede establecer en ActionBar en Android SDK 5
- Android split ActionBar - Cambiar el diseño de los iconos
- Cómo agregar elementos de submenú a ActionBar acción en código?
- Superposición de la barra de acción no funciona
- Cómo evitar el parpadeo en la barra de acción mientras showinh y ocultarlo en el desplazamiento
- Barra de acción de Android: deshabilita el menú de opciones
- Acción Tamaño del logotipo?
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