5

I fijó ActionBarSherlock con mi aplicación, y estoy tratando de utilizar el Intermedio Progreso, estoy usando esto:Intermedio Progreso no funciona con ActionBarSherlock se ejecuta en pan de jengibre

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);  
    setSupportProgressBarIndeterminateVisibility(false); 

En mi onCreate, y luego usando:

setSupportProgressBarIndeterminateVisibility(true); 

Para habilitarlo.

Funciona bien en ICS pero no funciona en Gingerbread o Froyo, ¿alguien sabe cómo hacerlo funcionar? Gracias

Respuesta

13

Acabo de tener el mismo problema. La solución de Jake anterior no me solucionó: el método no está definido.

encontré una solución de trabajo publicado por Jake en la lista de errores para ActionBarSherlock aquí:

Véase la respuesta de Jake al cartel - el truco es llamar getSupportActionBar() en primer lugar, a " desencadenar la creación de las vistas ".

Así que mi método es onCreate():

protected void onCreate(Bundle arg0) 
{ 
    super.onCreate(arg0); 

    // allow window to show progress spinner in the action bar 
    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 
    getSupportActionBar(); 
    setSupportProgressBarIndeterminateVisibility(false); 
} 

Actualización basada en comentario de Laux:

Asegúrese de que sus importaciones reflejan com.actionbarsherlock.view.Window.FEATURE_INDETERMINATE_PROGRESS para que esto funcione.

Aquí es parte de mi import cuadra de una aplicación que utiliza este patrón:

import com.actionbarsherlock.app.ActionBar; 
import com.actionbarsherlock.app.SherlockActivity; 
import com.actionbarsherlock.view.ActionProvider; 
import com.actionbarsherlock.view.Menu; 
import com.actionbarsherlock.view.MenuItem; 
import com.actionbarsherlock.view.Window; 
import com.actionbarsherlock.widget.ShareActionProvider; 

Esta es una muy buena cosa para recordar cuando se trabaja con ABS - muchos de sus importaciones Android normales debe actualizarse para referirse a ABS en su lugar.

Puede ser una buena idea volver a visitar su bloque de importación, o posiblemente eliminarlo por completo y dejar que Eclipse lo reconstruya (CTRL-SHIFT-O), momento en el que Eclipse le preguntará por cada importación que ABS declara.

Esto también fue explicado por Glebbb en his answer.

+0

Gracias por la ayuda.^_^ – Cjames

+1

Además, si todavía no funciona, intente reemplazar requestWindowFeature (Window.FEATURE_INDETERMINATE_PROGRESS); a \t \t requestWindowFeature (com.actionbarsherlock.view.Window.FEATURE_INDETERMINATE_PROGRESS); – Cjames

0

Debe llamar al supportRequestWindowFeature.

requestWindowFeature es un método final en Activity y no se pudo anular.

+4

Si uso supportRequestWindowFeature (Window.FEATURE_INDETERMINATE_PROGRESS); Dice que el método no está definido. –

+0

En cuanto a las funciones disponibles en una SherlockActivity existe: 'requestWindowFeature booleano public final (int FeatureID)' - que proviene de la actividad estándar de Android y 'void 'requestWindowFeature public final (largo FeatureID)' - el cual viene de SherlockActivity No puedo ver el método 'supportRequestWindowFeature()'. – Radu

-1

Compruebe si está utilizando Theme.Sherlock.NoActionBar o un tema de barra de acción similar para esta actividad. En este método de casos setSupportProgressBarIndeterminateVisibility falla para mí con

Caused by: java.lang.NullPointerException 
at com.actionbarsherlock.internal.ActionBarSherlockCompat.updateProgressBars(ActionBarSherlockCompat.java:710) 
at com.actionbarsherlock.internal.ActionBarSherlockCompat.onIntChanged(ActionBarSherlockCompat.java:686) 
at com.actionbarsherlock.internal.ActionBarSherlockCompat.updateInt(ActionBarSherlockCompat.java:681) 
at com.actionbarsherlock.internal.ActionBarSherlockCompat.setFeatureInt(ActionBarSherlockCompat.java:665) 
at com.actionbarsherlock.internal.ActionBarSherlockCompat.setProgressBarIndeterminateVisibility(ActionBarSherlockCompat.java:637) 
at com.actionbarsherlock.app.SherlockFragmentActivity.setSupportProgressBarIndeterminateVisibility(SherlockFragmentActivity.java:282) 

Creo que se debe utilizar un progreso en lugar de diálogo para indicar el proceso de carga o regular Theme con barra de actividad título y luego usar setProgressBarIndeterminateVisibility método para plataformas más antiguas.

4

Estoy seguro de que probablemente ya lo hayas descifrado, pero el culpable más probable es que incluyas el archivo incorrecto porque es muy fácil hacerlo automáticamente.

Reemplazar cualquier importación de android.view.Window con com.actionbarsherlock.view.Window y las características necesarias funcionará.

+0

¡Esto me ha estado molestando por horas! ¡Gracias! – manavo

+0

¡Gracias! He estado buscando esto por un tiempo ahora. – eMich

Cuestiones relacionadas