|
||
|
![]() |
![]() |
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
Herramientas |
#1
|
||||
|
||||
ayuda progressdialog
como le hago para meter un progressdialog en lo que se cargan unos datos traidos de una BDD mediante un web service,
esto es lo que tengo pero el progressdialog me lo muestra ya que se han cargado los datos esto va al momento de dar click a un boton Código:
progressDialog = new ProgressDialog(this); progressDialog.setTitle("Cargando datos, porfavor espere.."); progressDialog.show(); thread.start(); SoapObject solicitud = new SoapObject(namespace, Metodo); /// solicitud.addProperty("dato", edtxtpoliza.getText().toString()); solicitud.addProperty("dato1", edtxtinciso.getText().toString()); /// SoapSerializationEnvelope envoltorio = new SoapSerializationEnvelope(SoapEnvelope.VER11); envoltorio.dotNet = true; envoltorio.setOutputSoapObject(solicitud); HttpTransportSE transporte = new HttpTransportSE(url); transporte.call(accionSoap, envoltorio); Object result = (Object)envoltorio.getResponse(); JSONString=result.toString(); DecoderConfiguration config = new DecoderConfiguration(false, AutoValueObject.class); AutoValueObject auto = (AutoValueObject)deserializeJsonResponse(config, JSONString); edtxt1.setText((datoos1).toString()); edtxt2.setText((datoos2).toString()); edtxt3.setText((datoos3).toString()); edtxt4.setText((datoos4).toString()); edtxt5.setText((datoos5).toString()); edtxt6.setText((datoos6).toString()); realizado=true; y mi trhead lo tengo asi Código:
Thread thread = new Thread(){ @Override public void run() { while(realizado==false) { try{ this.sleep(5000); } catch (InterruptedException ex) { progressDialog.dismiss(); } } } }; |
|
#2
|
||||
|
||||
La petición de datos la haces en el hilo principal, así que el hilo que has puesto no vale para nada, porque el ProgressDialog también va en el hilo principal, y sólo se mostrará cuando el hilo principal esté libre, que coincide con la finalización de la petición de datos.
Para que funcione tendrás que meter la petición de datos en el hilo, y las líneas que actualicen la UI tendrás que meterlas en un Handler o en un runOnUiThread. |
Gracias de parte de: | ||
#3
|
||||
|
||||
no te entendi , no podrias e4xplicarmelo con un ejemplo ???
|
#4
|
||||
|
||||
ya ya me quedo muchas gracias....
|
#5
|
||||
|
||||
pero tengo una duda mi codigo quedo de la siguiente manera..
Código:
Thread thread = new Thread(){ @Override public void run() { while(realizado==false) { try{ SoapObject solicitud = new SoapObject(namespace, Metodo); /// solicitud.addProperty("dato1", edtxt1.getText().toString()); solicitud.addProperty("dato1", edtxt2.getText().toString()); /// SoapSerializationEnvelope envoltorio = new SoapSerializationEnvelope(SoapEnvelope.VER11); envoltorio.dotNet = true; envoltorio.setOutputSoapObject(solicitud); HttpTransportSE transporte = new HttpTransportSE(url); try { transporte.call(accionSoap, envoltorio); Object result = (Object)envoltorio.getResponse(); JSONString=result.toString(); DecoderConfiguration config = new DecoderConfiguration(false, AutoValueObject.class); auto = (AutoValueObject)deserializeJsonResponse(config, JSONString); realizado=true; } catch (Exception e) { Toast toast = Toast.makeText(getApplicationContext(), "No se pudo comunicar con el servidor", Toast.LENGTH_SHORT); toast.show(); // Log.i("error","mensaje",e); // e.printStackTrace(); } this.sleep(5000); } catch (InterruptedException ex) { //progressDialog.dismiss(); // es que aqui quiero checar porque no lo cierra aqui Toast toast = Toast.makeText(getApplicationContext(), "No se pudo comunicar con el servidor", Toast.LENGTH_SHORT); toast.show(); } } handler.sendEmptyMessage(0); } }; final Handler handler = new Handler(){ public void handleMessage(Message msg) { edtxt1.setText((x1).toString()); edtxt2.setText((x2).toString()); edtxt3.setText((x3).toString()); edtxt4.setText((x4).toString()); edtxt5.setText((x5).toString()); edtxt6.setText((x6).toString()); relativelayout.setVisibility(View.VISIBLE); btobtener.setVisibility(View.GONE); progressDialog.dismiss(); } }; |
#6
|
||||
|
||||
¿Qué quieres decir que no ves que entre al Thread? Ponle Log al principio y al final del Thread y así comprobarás si entra o no. Pero si te está dando resultados buenos es que si que entra.
|
#7
|
||||
|
||||
debug
pues es que en debug no entra, le pongo un breakpoint en la linea
SoapObject solicitud = new SoapObject(namespace, Metodo); por ejemplo, y no entra ahi es a lo que me refiero pero si hace todo lo que debe de hacer |
![]() |
![]() |
||||||
|
Herramientas | |