У меня есть AsyncTask
, который запрашивает базу данных, а затем возвращает boolean
.Как я могу изменить вид на конце AsyncTask?
Я пытаюсь установить видимость progressbars на onPostExecute
. Я получаю
nullpointerexception: Attempt to invoke virtual method 'void android.widget.ProgressBar.setVisibility(int)' on a null object reference
потому что я не могу ссылаться на него должным образом.
Как мне это сделать?
AsyncTask:
public class TarefaValidaEmail extends AsyncTask<String, Void, Boolean> {
private Context context;
private Cadastro cadastro = new Cadastro();
public TarefaValidaEmail(Context context){
this.context = context;
}
@Override
protected Boolean doInBackground(String... params) {
String email = params[0];
Log.d("STRING BACKGROUND: ", email);
UsuarioDAO dao = new UsuarioDAO();
boolean isEmailValido = dao.isEmailValido(email);
return isEmailValido;
}
@Override
protected void onPostExecute(Boolean isEmailValido){
cadastro.isEmailValido(isEmailValido);
cadastro.progress.setVisibility(View.INVISIBLE);
}
}
активность (Cadastro):
public class Cadastro extends AppCompatActivity {
//Setando variáveis
//STANDS-FOR: Conferir password
private boolean senhaOk = false;
private boolean senhaOkFinal = false;
boolean emailValido;
EditText etEmail;
ProgressBar progress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cadastro);
//Cacheing EditTexts
final EditText etNome = (EditText) findViewById(R.id.etNome);
final EditText etSenha = (EditText) findViewById(R.id.etSenha);
final EditText etSenhaVerify = (EditText) findViewById(R.id.etSenhaVerify);
progress = (ProgressBar) findViewById(R.id.progress_email);
etEmail = (EditText) findViewById(R.id.etEmail);
//Ajustando fonte e inputType dos passwords
etSenha.setTypeface(Typeface.DEFAULT);
etSenha.setTransformationMethod(new PasswordTransformationMethod());
etSenhaVerify.setTypeface(Typeface.DEFAULT);
etSenhaVerify.setTransformationMethod(new PasswordTransformationMethod());
... (Some code) ...
//Adiciona TextWatchers (Listeners) aos campos de senha
etSenha.addTextChangedListener(twSenha);
etSenhaVerify.addTextChangedListener(twSenhaVerify);
//Loader animation & check-email
etEmail.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
progress.setVisibility(View.VISIBLE);
TarefaValidaEmail tarefa = new TarefaValidaEmail(Cadastro.this);
tarefa.execute(etEmail.getText().toString());
}
}
});
}
//Metodo que recebe verificação do email
public void isEmailValido(Boolean isValido){
progress.setVisibility(View.INVISIBLE);
}
}
Уже пытались Cadastro.this.progress.setVisib..
на активности Cadastro и класса Tarefa AsyncTask. Благодаря !
Вы исключаете братан! hahaha спасибо! –