Tengo listfragment que inicia actionmode. Estoy usando actionbarsherlock. Pero cuando la orientación cambia, o cuando comienzo una actividad nueva, la barra de acción contextual desaparece. ¿Hay alguna forma de restablecerlo, sin reiniciarlo? En la aplicación de google gmail permanece en la pantalla ya sea que gire el teléfono o vaya a la pantalla de detalles.Restaurar ActionMode después de cambiar la orientación
Respuesta
La mejor manera es utilizar en Guardar estado de instancia para guardar el estado del modo de acción antes de la rotación.
public abstract class MyActivity extends SherlockFragmentActivity{
private boolean isInActionMode = false;
@Override
public void onCreate(Bundle state){
super.onCreate(state);
if (state != null && state.getBoolean("ActionMode", false)){
startActionMode(new MyActionMode());
}else{
///whatever you'd normally do
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
// Save isInActionMode value
outState.putBoolean("ActionMode", isInActionMode);
super.onSaveInstanceState(outState);
}
public void onWhateverEventNormallyStartsYourActionMode(){
startActionMode(new MyActionMode());
}
public class MyActionMode implements ActionMode.Callback{
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
isInActionMode = true;
///whatever you'd normally do
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
///whatever you'd normally do
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
///whatever you'd normally do
}
@Override
public void onDestroyActionMode(ActionMode mode) {
isInActionMode = false;
}
}
}
Actualizado de acuerdo con el comentario de Saran.
Debe poner 'isInActionMode = true;' solo en 'onCreateActionMode()' de lo contrario, la próxima rotación no recogerá el estado . – Saran
Esto realmente no restaura el modo de acción. Lo recrea de nuevo. Por lo tanto, debe recrear el título del modo de acción y volver a hacer todas las selecciones de elementos. – faizal
Por supuesto. Debe guardar el estado de los datos dinámicos (por ejemplo, las selecciones) y restaurarlos más tarde. – galex
- 1. El contenido de la pestaña permanece visible después de cambiar la pestaña después de cambiar la orientación
- 2. Mercurial: Cómo restaurar después de la rebase
- 3. cambiar la orientación sin onCreate call
- 4. Cambiar la orientación en tiempo de ejecución
- 5. El contenido de TextView se pierde después de cambiar la orientación de la pantalla
- 6. Android: notifyDataSetChanged() no actualiza la lista vista después de cambiar la orientación
- 7. ¿Restaurar la solicitud POST original después de la autenticación CAS?
- 8. ¿Cómo cambiar la orientación del control UniformGrid?
- 9. El campo de hora de Android TimePicker desaparece después de cambiar la orientación
- 10. Cómo restaurar la salida estándar después de usar freopen
- 11. cargador no puede reiniciarse después de la orientación cambió
- 12. iOS: ¿Cómo puedo cambiar la orientación de un UICollectionViewCell?
- 13. cómo cambiar la orientación de video en MediaRecorder a retrato
- 14. Cambios en el diseño de Xml al cambiar la orientación
- 15. Edificio ActionMode con diseño personalizado en ActionBarSherlock
- 16. ¿Cómo ajustar a la pantalla después de cambiar el ancho de la ventana gráfica en el cambio de orientación?
- 17. Cómo cambiar la orientación del video para AVCaptureVideoDataOutput
- 18. UIScrollView no obtener un nuevo tamaño en la orientación cambiar
- 19. En Matlab, ¿cómo cambiar la orientación del eje?
- 20. Git: restaurar repositorio se separaron después de fallidos rebase
- 21. Segunda instancia de actividad después del cambio de orientación
- 22. ¿Cómo cerrar un menú de ActionMode programmatically en Honeycomb?
- 23. Fragmentos que no funcionan correctamente después del cambio de orientación
- 24. Android DialogFragment desaparece después del cambio de orientación
- 25. El dispositivo Android emulado no vuelve a sincronizar la hora/fecha después de restaurar la instantánea
- 26. ¿Cómo detectar cambios de orientación y cambiar el diseño?
- 27. ¿Cómo ocultar un UIView por completo al cambiar de orientación?
- 28. ¿Cómo cambiar la orientación de la página de PDF? (Se necesita la solución Ghostscript o PostScript)
- 29. ¿Cómo cambiar la orientación del buffer de devolución de llamada de la cámara?
- 30. Habilitación del intermediario después de restaurar la base de datos del servidor Sql
echa un vistazo a esta cuestión de abs hilo: https://github.com/JakeWharton/ActionBarSherlock/issues/463 – newbyca