5

I setup ActionBarSherlock z mojego app i próbuję użyć Intermediate Progress, używam to:Intermediate Progress nie działa z ActionBarSherlock działa na Gingerbread

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

W moim onCreate i następnie używając:

setSupportProgressBarIndeterminateVisibility(true); 

Aby włączyć.

Działa dobrze w ICS, ale nie działa w ogóle w Gingerbread lub Froyo, czy ktoś wie, jak go uruchomić? Dzięki

Odpowiedz

13

Po prostu miałem ten sam problem. Powyższe rozwiązanie Jake'a nie naprawiło tego dla mnie - metoda jest niezdefiniowana.

znalazłem rozwiązanie pracy zamieszczonych przez Jake'a na liście błędów dla ActionBarSherlock tutaj:

odpowiedzi Zobacz Jake'a do plakatu - sztuką jest wywołać getSupportActionBar() pierwsze, " wywołać tworzenie widoków ".

Więc moja metoda onCreate() jest:

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); 
} 

Aktualizacja oparta na komentarz z Laux:

Upewnij się, że import odzwierciedlać com.actionbarsherlock.view.Window.FEATURE_INDETERMINATE_PROGRESS to zadziałało.

Tutaj jest częścią mojego import bloku z aplikacji, która korzysta z tego wzoru:

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; 

To jest bardzo dobrą rzeczą, aby pamiętać podczas pracy z ABS - wiele swoich normalnych importu Android powinny zostać zaktualizowane poprzez odniesienie zamiast ABS.

Warto ponownie przejrzeć blok importu lub ewentualnie go całkowicie usunąć i pozwolić, aby Eclipse przebudował go dla Ciebie (CTRL-SHIFT-O), do którego punkt Eclipse wyświetli monit o każdy import, który jest redeclares ABS.

Zostało to również wyjaśnione przez Glebbb w his answer.

+0

Dzięki za pomoc.^_^ – Cjames

+1

Dodatkowo, jeśli nadal nie działa, spróbuj zamienić requestWindowFeature (Window.FEATURE_INDETERMINATE_PROGRESS); do \t \t requestWindowFeature (com.actionbarsherlock.view.Window.FEATURE_INDETERMINATE_PROGRESS); – Cjames

0

Musisz zadzwonić pod numer supportRequestWindowFeature.

requestWindowFeature jest ostateczną metodą na Activity i nie można jej zmienić.

+4

Jeśli używam supportRequestWindowFeature (Window.FEATURE_INDETERMINATE_PROGRESS); Mówi, że metoda jest niezdefiniowana. –

+0

Patrząc na dostępnych funkcji w SherlockActivity znajduje się: 'public final boolean requestWindowFeature (int featureId)' - która pochodzi ze standardowego Aktywny Android i 'public final void' requestWindowFeature (długi featureId) '- co pochodzi z SherlockActivity Nie widzę metody 'supportRequestWindowFeature()'. – Radu

-1

Sprawdź, czy używasz Theme.Sherlock.NoActionBar lub podobnego motywu paska działań dla tego działania. W tej metodzie przypadek setSupportProgressBarIndeterminateVisibility nie dla mnie

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) 

Chyba powinieneś użyć zamiast dialogowe do wskazywania procesu ładowania lub regularne Theme z paska tytułowego aktywność, a następnie użyć setProgressBarIndeterminateVisibility metody dla starszych platform postępy.

4

Jestem pewna, że ​​udało ci się to już ustalić, ale najbardziej prawdopodobnym winowajcą jest włączenie niewłaściwego pliku, ponieważ jest to łatwe do zrobienia automatycznie.

Wymień import android.view.Window z com.actionbarsherlock.view.Window i potrzebne funkcje będą działać.

+0

To mnie podsłuchiwać przez wiele godzin! Dzięki! – manavo

+0

Dziękujemy! Szukałem tego od jakiegoś czasu. – eMich

Powiązane problemy