>

Fórum

Fórum da RL System, voltado para analistas, programadores etc. Tudo sobre linguagem de programação e desenvolvimento Full Stack: Banco de Dados, Android, C#, Java, .NET, PHP, Node, Javascript, TypeScript, Front, HTML e muito mais.



barra de progresso não aparece


Pessoal minha barra de progresso não aparece durante o processo somente no final de eu tirar a seguinte linha
pgd.dismiss()

segue o codigo


public class ImportarDados extends Activity {

ProgressDialog pgd;

private String namespace = "http://hidroluz.org/";
private String METHOD_NAME = "Usuarios";
private String URL = "http://hidroluz.com.br/medicao/ControleMedicao.asmx";
private String SOAP_ACTION = "http://hidroluz.org/Usuarios";
private SoapObject soap;
private SoapSerializationEnvelope envelope;
private SoapObject resposta;
private Integer qtdReg;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.importardados);

// clicou o botão sair
Button btnImporta = (Button) findViewById(R.id.btnImporta);

btnImporta.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

pgd = new ProgressDialog(ImportarDados.this);
pgd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pgd.setCancelable(false);
pgd.setTitle("Importanto dados");
pgd.show();

String nome_usu;
String key_net;
String consulta_tudo;
String assessor;
String codigo;

nome_usu= null;
key_net = null;
consulta_tudo = null;
assessor = null;
codigo = null;
soap = null;

try {

//pgd = ProgressDialog.show(ImportarDados.this, "Carregando", "Aguarde...", true);

soap = new SoapObject(namespace, METHOD_NAME);

PropertyInfo p1 = new PropertyInfo();
p1.setName("tipo");
p1.setValue("T");
p1.setType(String.class);

soap.addProperty(p1);

envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

envelope.dotNet = true;

envelope.setOutputSoapObject(soap);

HttpTransportSE transporte = new HttpTransportSE(URL);

transporte = new HttpTransportSE(URL);
transporte.call(SOAP_ACTION, envelope);

resposta = (SoapObject) envelope.getResponse();

resposta= (SoapObject) resposta.getProperty(1);

qtdReg = resposta.getPropertyCount();
if (qtdReg == 0 ){


}else{

// abrir banco de dados para carregar os campos
SQLiteDatabase db = openOrCreateDatabase("medicao.db",Context.MODE_PRIVATE, null);

SoapObject table = (SoapObject) resposta.getProperty(0);

int count = table.getPropertyCount();

String lc = Integer.toString(count);

Log.d("TOTAL DE REG.LIDOS = ", lc);

//pgd = ProgressDialog.show(ImportarDados.this, "Carregando", "Aguarde...", true);
//pgd.setMax(count);
//th.start();

if (count > 0 ){

for (int i=0;i < count; i++ ){

SoapObject tableRow = (SoapObject) table.getProperty(i);

nome_usu = tableRow.getProperty("nome").toString();
key_net = tableRow.getProperty("key_net").toString();
consulta_tudo = tableRow.getProperty("consulta_tudo").toString();
assessor = tableRow.getProperty("assessor").toString();
codigo = tableRow.getProperty("codigo").toString();

// insere registros
ContentValues ctv = new ContentValues();
ctv.put("usuario", nome_usu);
ctv.put("senha", key_net);
ctv.put("consulta_tudo", consulta_tudo);
ctv.put("assessor", assessor);
ctv.put("codigo", codigo);
// verifica se o usuário ja foi cadastrado
String sql = "SELECT * FROM usuarios WHERE codigo = ?";
String[] selectionArgs = new String[] { codigo };

Cursor cursor = db.rawQuery(sql, selectionArgs);
pgd.setProgress(pgd.getProgress() + 1);
if (cursor.getCount() == 0) {
db.insert("usuarios", "id", ctv);
}else{
db.update("usuarios", ctv,"codigo=?", new String[] {codigo});
}
cursor.close();
}

} else {
}
db.close();
pgd.dismiss();
}
} catch (Exception ex){
//txvUf.setText(ex.getMessage());
Log.d("Erro = ", ex.getMessage());

}

// Thread th = new Thread((Runnable) ImportarDados.this);
// th.start();

}

});// fim do click importar


}// fim do oncreate


}// fim da active



7 Respostas


Ola celso ,

vc tem q chamar uma Thread... e depois um handler p poder funcionar




Valeu andre alterei o código e a barra apareceu só que não foi preenchendo registro a registro ficou vazia, segue o código modificado



Abraços e obrigado pela atenção.






public class ImportarDados extends Activity implements Runnable {


pgd = new ProgressDialog(ImportarDados.this);
pgd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pgd.setCancelable(false);
pgd.setTitle("Importanto dados");
pgd.show();
new Thread(ImportarDados.this).start();

@Override
public void run() {
// TODO Auto-generated method stub

String nome_usu;
String key_net;
String consulta_tudo;
String assessor;
String codigo;

nome_usu= null;
key_net = null;
consulta_tudo = null;
assessor = null;
codigo = null;
soap = null;

try {

//pgd = ProgressDialog.show(ImportarDados.this, "Carregando", "Aguarde...", true);

soap = new SoapObject(namespace, METHOD_NAME);

PropertyInfo p1 = new PropertyInfo();
p1.setName("tipo");
p1.setValue("T");
p1.setType(String.class);

soap.addProperty(p1);

envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

envelope.dotNet = true;

envelope.setOutputSoapObject(soap);

HttpTransportSE transporte = new HttpTransportSE(URL);

transporte = new HttpTransportSE(URL);
transporte.call(SOAP_ACTION, envelope);

resposta = (SoapObject) envelope.getResponse();

resposta= (SoapObject) resposta.getProperty(1);

qtdReg = resposta.getPropertyCount();



if (qtdReg == 0 ){


}else{

// abrir banco de dados para carregar os campos
SQLiteDatabase db = openOrCreateDatabase("medicao.db",Context.MODE_PRIVATE, null);

SoapObject table = (SoapObject) resposta.getProperty(0);

int count = table.getPropertyCount();

String lc = Integer.toString(count);

pgd.setMax(count);

Log.d("TOTAL DE REG.LIDOS = ", lc);

//pgd = ProgressDialog.show(ImportarDados.this, "Carregando", "Aguarde...", true);
//pgd.setMax(count);
//th.start();

if (count > 0 ){

for (int i=0;i < count; i ){

SoapObject tableRow = (SoapObject) table.getProperty(i);

nome_usu = tableRow.getProperty("nome").toString();
key_net = tableRow.getProperty("key_net").toString();
consulta_tudo = tableRow.getProperty("consulta_tudo").toString();
assessor = tableRow.getProperty("assessor").toString();
codigo = tableRow.getProperty("codigo").toString();

// insere registros
ContentValues ctv = new ContentValues();
ctv.put("usuario", nome_usu);
ctv.put("senha", key_net);
ctv.put("consulta_tudo", consulta_tudo);
ctv.put("assessor", assessor);
ctv.put("codigo", codigo);
// verifica se o usuário ja foi cadastrado
String sql = "SELECT * FROM usuarios WHERE codigo = ?";
String[] selectionArgs = new String[] { codigo };

Cursor cursor = db.rawQuery(sql, selectionArgs);

h1.sendEmptyMessage(0);

if (cursor.getCount() == 0) {
db.insert("usuarios", "id", ctv);
}else{
db.update("usuarios", ctv,"codigo=?", new String[] {codigo});
}
cursor.close();
}

} else {
}
db.close();
pgd.dismiss();
}
} catch (Exception ex){
//txvUf.setText(ex.getMessage());
Log.d("Erro = ", ex.getMessage());
error = ex.getMessage();
}

// Thread th = new Thread((Runnable) ImportarDados.this);
// th.start();

}

public Handler h1 = new Handler();

public void handleMessage(Message msg) {

if (msg.what == 0) {
pgd.setProgress(pgd.getProgress() 1);

} else if (msg.what == 1) {
pgd.dismiss();
Toast.makeText(getBaseContext(), "Pedido enviado com Suceso",
Toast.LENGTH_SHORT).show();
//startActivity(new Intent(getBaseContext(), TelaPrincipal.class));

} else if (msg.what == 2) {
pgd.dismiss();
Toast.makeText(getBaseContext(), "Erro na replicação" error,
Toast.LENGTH_SHORT).show();

}
}


}// fim da active






Ola celso ..

aparece qts registros no lc ???

"Log.d("TOTAL DE REG.LIDOS = ", lc);"






opa .. desculpa pela demora..

ali no handler nao é assim

public Handler h1 = new Handler();

public void handleMessage(Message msg) {

if (msg.what == 0) {
pgd.setProgress(pgd.getProgress() 1);

} else if (msg.what == 1) {
pgd.dismiss();
Toast.makeText(getBaseContext(), "Pedido enviado com Suceso",
Toast.LENGTH_SHORT).show();
//startActivity(new Intent(getBaseContext(), TelaPrincipal.class));

} else if (msg.what == 2) {
pgd.dismiss();
Toast.makeText(getBaseContext(), "Erro na replicação" error,
Toast.LENGTH_SHORT).show();

}
}

é assim

public Handler h1 = new Handler(){
@Override
public void handleMessage(Message msg) {

if (msg.what == 0) {
pgd.setProgress(pgd.getProgress() 1);

} else if (msg.what == 1) {
pgd.dismiss();
Toast.makeText(getBaseContext(), "Pedido enviado com Suceso",
Toast.LENGTH_SHORT).show();
//startActivity(new Intent(getBaseContext(), TelaPrincipal.class));

} else if (msg.what == 2) {
pgd.dismiss();
Toast.makeText(getBaseContext(), "Erro na replicação" error,
Toast.LENGTH_SHORT).show();

}
}
}




Andre valeu por tudo, funcionou

Abraços