Estou com uma classe de cadastro simples apenas nome e endereço e estou fazendo alguns testes com ela.
Estou utilizando a classe ProgressDialog e uma thread para controlar. A mensagem de Aguarde, Cadastrando informações está fixa na tela não obedecendo a thread
Não estou conseguindo fazer funcionar segue o código para ver se alguém me da uma luz.
Olá
O nome do método não é handlerMessage e sim handleMessage.
Usa sempre @Override
F
felp10
Olá,
Cara alterei o nome do método e utilizei @Override nos métodos handleMessage, mas ainda está contínuo o progressdialog.
Obs: @Override da erro se utilizar nos métodos run e onClick.
Obrigado.
V
Valeio_Bezerra
Cara você tem que fechar o dialog dentro da thread. O problema que é a thread não faz nada. rs
F
felp10
Ok, mas como eu posso fazer isso então, desculpe minha ignorância mas thread não é o meu forte rsrrs Se puder exemplificar explicando eu bolo a solução e posto.
Obrigado.
A
A_H_Gusukuma
Para testar insere um Thread.sleep(1000); como primeiro comando do metodo run()
E testa, se não funcionar posta o código
F
felp10
Tentei desta forma:
packagecom.analistafinanceiromobileandroid.entrada;importcom.analistafinanceiromobileandroid.principal.R;importandroid.app.Activity;importandroid.app.ProgressDialog;importandroid.content.ContentValues;importandroid.database.sqlite.SQLiteDatabase;importandroid.graphics.Color;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.Message;importandroid.util.Log;importandroid.view.View;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.Toast;publicclassCadastroextendsActivityimplementsRunnable{privateProgressDialogpd;privateStringvalor;privateEditTextedtxtNomeCadastro;privateEditTextedtxtEmailCadastro;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.cadastro);finalButtonbtnCadastrarCadastrado=(Button)findViewById(R.id.btnCadastrarCadastro);edtxtNomeCadastro=(EditText)findViewById(R.id.edtxtNomeCadastro);edtxtEmailCadastro=(EditText)findViewById(R.id.edtxtEmailCadastro);btnCadastrarCadastrado.setOnClickListener(newView.OnClickListener(){publicvoidonClick(Viewv){pd=ProgressDialog.show(Cadastro.this,"Aguarde.","Cadastrando informações",true,false);Threadt=newThread(Cadastro.this);t.start();}});}publicvoidrun(){try{Thread.sleep(1000);}catch(InterruptedExceptione){e.printStackTrace();}valor=edtxtNomeCadastro.getText().toString();/*SQLiteDatabase db = openOrCreateDatabase("afma.db", MODE_PRIVATE, null); ContentValues ctv = new ContentValues(); ctv.put("nome", edtxtNomeCadastro.toString()); ctv.put("email", edtxtEmailCadastro.toString()); if(db.insert("cadastro", null, ctv) > 0) h.sendEmptyMessage(0);*/if(edtxtNomeCadastro.getText().equals("")){h2.sendEmptyMessage(0);}}privateHandlerh=newHandler(){@OverridepublicvoidhandleMessage(Messagemsg){pd.dismiss();Toastt=Toast.makeText(getBaseContext(),"Cadastro efetuado com sucesso!",Toast.LENGTH_SHORT);t.show();}};privateHandlerh2=newHandler(){@OverridepublicvoidhandleMessage(Messagemsg){pd.dismiss();Toastt=Toast.makeText(getBaseContext(),"Preencha o campo Nome",Toast.LENGTH_SHORT);t.show();edtxtNomeCadastro.setBackgroundColor(Color.RED);}};}
Continuei implementando o meu código para depois testar banco de dados e tudo mais, sei que não é uma boa prática como está aí mas é teste o codigo comentado já estou providenciando os pacotes adapters, dao e db
Enfim o teste continua igual.
A
A_H_Gusukuma
Para testar como o código está acima, faça o seguinte: