2010-12-04 8 views
7

Ich habe eine Menge darüber gelesen, und kann niemanden sehen, der es schon einmal getan oder versucht hat.Android ProgressDialog mit setContentView

Also habe ich ein Objekt bekommt das Image erstreckt, dann innerhalb diesem nenne ich einen Fortschrittsdialog und setzen Sie den Inhalt des Fortschrittsdialogs auf die Imageview (dh versuchen, den Fortschrittsdialog in der imageview..view zu ziehen.)

loadingProgressDialog.setContentView(this); //this is: LoaderImageView extends ImageView   
    loadingProgressDialog.setIndeterminate(true); 
    loadingProgressDialog.show(); 

und ich bekomme die Fehlermeldung: requestFeature() muss vor dem Hinzufügen von Inhalten

Jetzt aufgerufen werden habe ich diesen Fehler gesehen, bevor sie auf Lasten der Beiträge und ja die Antwort scheint offensichtlich. Ich habe versucht, alle Funktionen einzustellen:

Aber zuerst verstehe ich nicht, warum ich das brauche? Und zweitens funktioniert keiner von ihnen!

Also die Frage ist, kann ich die ProgressDialog contentView zu einem ImageView setzen? Wenn ja, was habe ich falsch verstanden?

Antwort

0

Verstanden.

Der Hinweis war in den Klassennamen, verwenden Sie nicht ProgressDialog (http://developer.android.com/reference/android/app/ProgressDialog.html), wenn Sie keinen Dialog benötigen!

Ich änderte meine Implementierung zu verwenden: ProgressBar (http://developer.android.com/reference/android/widget/ProgressBar.html) und es funktioniert super.

Prost für das Ohr sowieso! Diese

Deshalb suchte ich es für:

http://www.anddev.org/novice-tutorials-f8/imageview-with-loading-spinner-t49439.html

Tutorial zeigt, wie Sie einen Spinner haben können, während ein Bild geladen ist. Genießen Sie

0

Wenn Sie das progressDialog Entwicklerdokument lesen, heißt es "Ein Dialog, der eine Fortschrittsanzeige und eine optionale Textnachricht oder Ansicht anzeigt. Nur eine Textnachricht oder eine Ansicht kann gleichzeitig verwendet werden."

Es sieht so aus, als ob Sie beides versuchen. Möglicherweise die Ursache Ihres Problems.

+0

Ich kann sehen, was Sie sagen, dies scheint nicht der Fehler zu sein Ich habe den ursprünglichen Beitrag aktualisiert. Ich habe meine Idee von http://developer.android.com/guide/topics/ui/dialogs.html # CustomDialog – Blundell

42

Ich machte es; in der Tat ist es sehr einfach; mit

loadingProgressDialog.setContentView(this) 

nach

loadingProgressDialog.show() 

Die folgenden Codezeilen sind nicht erforderlich:

loadingProgressDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
loadingProgressDialog.requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 
loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_PROGRESS); 
loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 

, das ist zu sagen:

loadingProgressDialog.setIndeterminate(true); 
loadingProgressDialog.show(); 
loadingProgressDialog.setContentView(this); //this is: LoaderImageView extends ImageView 

, das genug ist.

Ich hoffe, dies kann anderen Menschen auf der Suche nach einer Antwort auf diese Frage helfen.

+0

Seltsam, setze setContentView() AFTER .show() hat es in meiner Situation zu arbeiten. Interessant. Vielen Dank! – LargeGlasses

+1

Das sollte akzeptiert werden Antwort – zirael

+1

Whaao! Konnte nie erraten haben, dass setContentView nach .show() platziert werden – sud007

Verwandte Themen