Estou montando um formulario e quero permitir que continue se todos os campos estiverem preenchidos.
O que tentei fazer foi desabilitar o btnCalcular e só habilitar ele se todos os campos estiverem preenchidos, o jeito que conheço para verificar é usando TextWatcher, mas ele só funciona para um campo, tentei fazer setando um boolean em cada campo, mas não deu certo. Alguem conhece alguma outra forma para verificar ou consegue ver onde estou errando?
package br.com.compara;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
private EditText etPrecoProduto1;
private EditText etPrecoProduto2;
private EditText etQuantidadeProduto1;
private EditText etQuantidadeProduto2;
private EditText etResultadoProduto1;
private EditText etResultadoProduto2;
float precoRealProduto1 = 0;
float precoRealProduto2 = 0;
float precoProduto1 = 0;
float precoProduto2 = 0;
float quantidadeProduto1 = 0;
float quantidadeProduto2 = 0;
boolean blnPreco1 = false;
boolean blnPreco2 = false;
boolean blnQtd1 = false;
boolean blnQtd2 = false;
private Button btnCalcular;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.itens);
etPrecoProduto1 = (EditText) findViewById(R.id.etPrecoProduto1);
etPrecoProduto2 = (EditText) findViewById(R.id.etPrecoProduto2);
etQuantidadeProduto1 = (EditText) findViewById(R.id.etQuantidadeProduto1);
etQuantidadeProduto2 = (EditText) findViewById(R.id.etQuantidadeProduto2);
etResultadoProduto1 = (EditText) findViewById(R.id.etResultadoProduto1);
etResultadoProduto2 = (EditText) findViewById(R.id.etResultadoProduto2);
btnCalcular = (Button) findViewById(R.id.btnCalcular);
btnCalcular.setEnabled(false);
etPrecoProduto1.addTextChangedListener(precoProduto1Watcher);
etPrecoProduto2.addTextChangedListener(precoProduto2Watcher);
etQuantidadeProduto1.addTextChangedListener(QuantidadeProduto1Watcher);
etQuantidadeProduto2.addTextChangedListener(QuantidadeProduto2Watcher);
if(blnPreco1 == true && blnPreco2 == true && blnQtd1 == true && blnQtd2 == true ){
btnCalcular.setEnabled(true);
}
btnCalcular.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
precoProduto1 = Float.parseFloat(etPrecoProduto1
.getText().toString());
precoProduto2 = Float.parseFloat(etPrecoProduto2
.getText().toString());
quantidadeProduto1 = Float
.parseFloat(etQuantidadeProduto1.getText().toString());
quantidadeProduto2 = Float
.parseFloat(etQuantidadeProduto2.getText().toString());
precoRealProduto1 = precoProduto1 / quantidadeProduto1;
etResultadoProduto1.setText(String.format("%.02f",
precoRealProduto1));
precoRealProduto2 = precoProduto2 / quantidadeProduto2;
etResultadoProduto2.setText(String.format("%.02f",
precoRealProduto2));
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
private TextWatcher precoProduto1Watcher = new TextWatcher(){
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
blnPreco1 = true;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
};
private TextWatcher precoProduto2Watcher = new TextWatcher(){
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
blnPreco2 = true;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
};
private TextWatcher QuantidadeProduto1Watcher = new TextWatcher(){
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
blnQtd1 = true;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
};
private TextWatcher QuantidadeProduto2Watcher = new TextWatcher(){
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
blnQtd2 = true;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
};
}