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