2010-12-04 14 views
7

He leído muchísimo sobre esto, y no puedo ver a nadie que lo haya hecho o probado antes.Android ProgressDialog con setContentView

así que tengo un objeto que se extiende ImageView, a continuación, dentro de este llamo a un diálogo de progreso y establecer el contenido de los diálogos de progreso a la imageview (es decir, el intento de trazar el diálogo de progreso en el imageview..view.)

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

y me sale el error: requestFeature() debe ser llamado antes de añadir contenido

Ahora que he visto este error antes de un montón de mensajes y sí, la respuesta parece obvia. Intenté establecer todas las características:

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

Pero primero no entiendo por qué necesito esto? ¡Y segundo, ninguno de ellos funciona de todos modos!

Entonces, ¿la pregunta es si puedo configurar ProgressDialog contentView en un ImageView? Si es así, ¿qué me he equivocado?

Respuesta

0

Lo tengo.

La pista estaba en los nombres de clase, no use ProgressDialog (http://developer.android.com/reference/android/app/ProgressDialog.html) cuando no necesita un diálogo.

Cambié mi implementación para usar: ProgressBar (http://developer.android.com/reference/android/widget/ProgressBar.html) y funciona muy bien.

¡Saludos para la oreja de todos modos!

Esto es por lo que estaba buscando por:

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

tutorial que muestra cómo se puede tener un control de giro, mientras que una imagen se está cargando. Disfrute

0

Si lee el documento del desarrollador progressDialog, dice "Un cuadro de diálogo que muestra un indicador de progreso y un mensaje de texto o vista opcional. Solo se puede usar un mensaje de texto o una vista al mismo tiempo".

Parece que está intentando hacer ambas cosas. Posiblemente la causa de tu problema.

+0

Puedo ver lo que dices, este no parece ser el error que he actualizado la publicación original. Obtuve mi idea en http://developer.android.com/guide/topics/ui/dialogs.html # CustomDialog – Blundell

42

Lo hice; de hecho, es muy fácil; utilizando

loadingProgressDialog.setContentView(this) 

después

loadingProgressDialog.show() 

Las siguientes líneas de código son innecesarios:

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

Es decir:

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

que es suficiente.

Espero que esto pueda ayudar a otras personas que buscan respuestas sobre esta pregunta.

+0

Extraño, poniendo setContentView() DESPUÉS .show() lo tengo que funcionar en mi situación. Interesante. ¡Gracias! – LargeGlasses

+1

Eso debe aceptarse respuesta – zirael

+1

Whaao! Nunca podría haber adivinado que setContentView se coloque después de .show() – sud007

Cuestiones relacionadas