5

ho configurato ActionBarSherlock con la mia app, e sto cercando di utilizzare il Progress Intermedio, sto usando questo:Intermedio Il progresso non funziona con ActionBarSherlock in esecuzione su Gingerbread

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

Nel mio onCreate, e quindi utilizzando:

setSupportProgressBarIndeterminateVisibility(true); 

Per abilitarlo.

Funziona bene in ICS ma non funziona affatto in Gingerbread o Froyo, qualcuno sa come farlo funzionare? Grazie

risposta

13

Ho appena avuto lo stesso problema. La soluzione di Jake di cui sopra non ha risolto il problema per me: il metodo non è definito.

ho trovato una soluzione di lavoro inviato da Jake sulla lista di bug per ActionBarSherlock qui:

risposta di See Jake per il manifesto - il trucco è quello di chiamare getSupportActionBar() prima, a " innescare la creazione delle viste ".

Quindi il mio metodo è 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); 
} 

aggiornamento sulla base di commento da Laux:

Assicurarsi che le importazioni riflettono com.actionbarsherlock.view.Window.FEATURE_INDETERMINATE_PROGRESS per questo al lavoro.

Ecco parte della mia import isolato da un app che utilizza questo schema:

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; 

Questa è una buona cosa da ricordare quando si lavora con ABS - molti dei vostri normali importazioni Android dovrebbe essere aggiornato per riferirsi invece ad ABS.

Potrebbe essere una buona idea rivisitare il blocco di importazione, o eventualmente rimuoverlo completamente e lasciare che Eclipse lo ricostruisca per te (CTRL-SHIFT-O) a quel punto Eclipse ti chiederà per ogni importazione che l'ABS ridichiara.

Questo è stato anche spiegato da Glebbb in his answer.

+0

Grazie per l'aiuto.^_^ – Cjames

+1

Inoltre, se ancora non funziona, provare a sostituire requestWindowFeature (Window.FEATURE_INDETERMINATE_PROGRESS); a \t \t requestWindowFeature (com.actionbarsherlock.view.Window.FEATURE_INDETERMINATE_PROGRESS); – Cjames

0

È necessario chiamare supportRequestWindowFeature.

requestWindowFeature è un metodo finale su Activity e non può essere sostituito.

+4

Se utilizzo supportRequestWindowFeature (Window.FEATURE_INDETERMINATE_PROGRESS); Dice che il metodo non è definito. –

+0

Guardando le funzioni disponibili in uno SherlockActivity c'è: 'requestWindowFeature booleano finale pubblica (int FeatureId)' - che proviene dalla serie di attività Android e 'finale vuoto' requestWindowFeature pubblica (lungo FeatureId) '- che deriva da SherlockActivity Non riesco a vedere un metodo 'supportRequestWindowFeature()'. – Radu

-1

Controllare, se si utilizza Theme.Sherlock.NoActionBar o simile nessun tema della barra delle azioni per questa attività. In questo metodo caso setSupportProgressBarIndeterminateVisibility fallisce per me 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) 

Credo che si dovrebbe utilizzare un progresso dialogo invece per indicare operazioni di carico o regolare Theme con barra del titolo di attività e quindi utilizzare setProgressBarIndeterminateVisibility metodo per le piattaforme più anziani.

4

Sono sicuro che probabilmente lo hai già capito, ma il colpevole più probabile è che tu abbia incluso il file sbagliato perché è così facile da fare automaticamente.

Sostituire ogni importazione di android.view.Window con com.actionbarsherlock.view.Window e le caratteristiche necessarie funzionerà.

+0

Questo mi ha infastidito per ore! Grazie! – manavo

+0

Grazie! L'ho cercato per un po 'ora. – eMich

Problemi correlati