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.
package com.analistafinanceiromobileandroid.entrada;
import com.analistafinanceiromobileandroid.principal.R;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class Cadastro extends Activity implements Runnable{
private ProgressDialog pd;
private String valor;
private EditText edtxtNomeCadastro;
private EditText edtxtEmailCadastro;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.cadastro);
final Button btnCadastrarCadastrado = (Button)findViewById(R.id.btnCadastrarCadastro);
edtxtNomeCadastro = (EditText)findViewById(R.id.edtxtNomeCadastro);
edtxtEmailCadastro = (EditText)findViewById(R.id.edtxtEmailCadastro);
btnCadastrarCadastrado.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
pd = ProgressDialog.show(Cadastro.this, "Aguarde.", "Cadastrando informações", true, false);
Thread t = new Thread(Cadastro.this);
t.start();
}
});
}
public void run() {
valor = edtxtNomeCadastro.getText().toString();
h.sendEmptyMessage(0);
}
private Handler h = new Handler(){
public void handlerMessage(Message msg){
pd.dismiss();
}
};
}
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.
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.
package com.analistafinanceiromobileandroid.entrada;
import com.analistafinanceiromobileandroid.principal.R;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class Cadastro extends Activity implements Runnable{
private ProgressDialog pd;
private String valor;
private EditText edtxtNomeCadastro;
private EditText edtxtEmailCadastro;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.cadastro);
final Button btnCadastrarCadastrado = (Button)findViewById(R.id.btnCadastrarCadastro);
edtxtNomeCadastro = (EditText)findViewById(R.id.edtxtNomeCadastro);
edtxtEmailCadastro = (EditText)findViewById(R.id.edtxtEmailCadastro);
btnCadastrarCadastrado.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
pd = ProgressDialog.show(Cadastro.this, "Aguarde.", "Cadastrando informações", true, false);
Thread t = new Thread(Cadastro.this);
t.start();
}
});
}
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
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);
}
}
private Handler h = new Handler(){
@Override
public void handleMessage(Message msg){
pd.dismiss();
Toast t = Toast.makeText(getBaseContext(), "Cadastro efetuado com sucesso!", Toast.LENGTH_SHORT);
t.show();
}
};
private Handler h2 = new Handler(){
@Override
public void handleMessage(Message msg){
pd.dismiss();
Toast t = 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.