Ignorar campos em branco

Tenho um aplicativo que eu quero ignorar campos em branco, se o usuário digitar vai ser apenas informações a mais se não digitar nada não pode ter problema.
Hoje o aplicativo se deixar um desses campos em branco ele fecha com um erro.

Java - Android

[quote=EvertonRicardo]Tenho um aplicativo que eu quero ignorar campos em branco, se o usuário digitar vai ser apenas informações a mais se não digitar nada não pode ter problema.
Hoje o aplicativo se deixar um desses campos em branco ele fecha com um erro.

Java - Android

[/quote]

Qual erro?

Fecha o aplicativo e aparece uma mensagem : (nome do aplicativo) parou

Voce pode postar o código da aplicação?

Provavelmente é alguma rotina posterior que está gerando esse “travamento” e não o fato de deixar um campo em branco.

public class MainActivity extends Activity {

EditText etGas, etAlc, etQtdeDist, etQtdeGas, etQtdeAlc;
Double num1, num2, kmTotal, ltAlc, ltGas, aux;
Button btCalc;

@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);

	etGas = (EditText) findViewById(R.gas.gasolina);
	etAlc = (EditText) findViewById(R.alc.alcool);
	btCalc = (Button) findViewById(R.botao.btCalcular);
	etQtdeAlc = (EditText) findViewById(R.id.qtdeLitroAlc);
	etQtdeGas = (EditText) findViewById(R.id.qtdeLitroGas);
	etQtdeDist = (EditText) findViewById(R.id.distViagem);

	btCalc.setOnClickListener(new View.OnClickListener() {

		@Override
		public void onClick(View arg0) {
			if (!etAlc.getText().toString().equals("")
					& !etGas.getText().toString().equals("")) {
				num1 = Double.parseDouble(etGas.getText().toString());
				num2 = Double.parseDouble(etAlc.getText().toString());
				kmTotal = Double.parseDouble(etQtdeDist.getText()
						.toString());
				ltAlc = Double.parseDouble(etQtdeAlc.getText().toString());
				ltGas = Double.parseDouble(etQtdeGas.getText().toString());
				aux = num2 / num1;
				double alcool = (kmTotal / ltAlc) * num2;
				double gasolina = (kmTotal / ltGas) * num1;

				alcool = Double.valueOf(String.format(Locale.US, "%.2f",
						alcool));
				gasolina = Double.valueOf(String.format(Locale.US, "%.2f",
						gasolina));

				if (aux >= 0.7) {
					AlertDialog.Builder caixaAlerta = new AlertDialog.Builder(
							MainActivity.this);
					caixaAlerta.setTitle("Sua melhor opção é:");
					caixaAlerta
							.setMessage("Abastecer com Gasolina! Abastecendo com Gasolina vai gastar: R$"
									+ gasolina
									+ "  Abastecendo com Álcool vai gastar:  R$"
									+ alcool
									+ " Economia de: R$"
									+ Double.valueOf(String.format(
											Locale.US, "%.2f", alcool
													- gasolina)));

					caixaAlerta.setNeutralButton("OK", null);
					caixaAlerta.show();
					// btCalc.setText("Abastecer com Gasolina!");
				} else {
					AlertDialog.Builder caixaAlerta = new AlertDialog.Builder(
							MainActivity.this);
					caixaAlerta.setTitle("Sua melhor opção é:");
					caixaAlerta
							.setMessage("Abastecer com Álcool! Abastecendo com Álcool vai gastar: R$"
									+ alcool
									+ "  Abastecendo com Gasolina vai gastar: R$"
									+ gasolina
									+ " Economia de: R$"
									+ Double.valueOf(String.format(
											Locale.US, "%.2f", gasolina
													- alcool)));
					caixaAlerta.setNeutralButton("OK", null);
					caixaAlerta.show();
					// btCalc.setText("Abastecer com Álcool!");
				}
			} else {
				AlertDialog.Builder caixaAlerta = new AlertDialog.Builder(
						MainActivity.this);
				caixaAlerta
						.setMessage("Obrigatório o preenchimento de todos os campos, Animal!");
				caixaAlerta.setTitle("Atenção!");
				caixaAlerta.setNeutralButton("Zé Ruela!", null);
				caixaAlerta.show();
			}

		}
	});
}

}

Lembrando que faz apenas duas semanas que estou estudando java- android

Vi que voce tem vários campos nessa aplicação, mas qual em específico pode ficar em branco?
Vendo o código assim por cima, vi que voce converte os valores de alguns campos para variáveis Double. Caso o campo não contiver um valor numérico irá gerar uma exceção, a qual não está sendo tratada.

Outro caso que vi é aqui:

double alcool = (kmTotal / ltAlc) * num2;

ltAlc voce busca de um outro campo texto, porém se esse campo contiver zero ou não possuir um valor numérico, irá gerar outra exceção, também não tratada.
Possivelmente o problema que ocorre é isso. Você tem que ver qual campo você permite que fique em branco e criar uma rotina diferente para esse caso, como por exemplo não utilizar o valor no cálculo que pode não estar preenchido.

etQtdeAlc
etQtdeGas
etQtdeDist

é esses três campos que pode ficar em branco ou não.

[quote=EvertonRicardo] etQtdeAlc
etQtdeGas
etQtdeDist

é esses três campos que pode ficar em branco ou não.[/quote]

Certo, mas veja que você não faz nenhum teste para verificar se esses campos possuem valor ou não. Como você utiliza esses valores para cálculos, caso não exista valor informado gerará uma exception.

Circunde essas instruções com um bloco try catch ou então teste de forma semelhante ao que você faz com etAlc e etGas.

Muito Obrigado!!!

Fiz com “if” e deu certo.

Voce sabe me explicar como eu coloco som ao clicar no botão?

[quote=EvertonRicardo]Muito Obrigado!!!

Fiz com “if” e deu certo.

Voce sabe me explicar como eu coloco som ao clicar no botão?[/quote]

Se voce se refere ao som de “click”, se nao me engano o próprio SO (no caso Andriod) emite o som.
Mas para algum som especifico imagino que seja necessario chamar um arquivo de mídia ou algo assim, mas aí não é minha área, não sei te dizer ao certo como seria.

package com.example.playcalc;

import java.util.Locale;

import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.renderscript.Sampler.Value;
import android.view.View;
import android.view.View.OnFocusChangeListener;
import android.widget.Button;
import android.widget.EditText;
import br.com.melhoropcao.R;
import br.com.melhoropcao.R.alc;

public class MainActivity extends Activity {

EditText etGas, etAlc, etQtdeDist, etQtdeGas, etQtdeAlc;
Double num1, num2, kmTotal, ltAlc, ltGas, aux, resultado;
Button btCalc;

@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);

	etGas = (EditText) findViewById(R.gas.gasolina);
	etAlc = (EditText) findViewById(R.alc.alcool);
	etQtdeAlc = (EditText) findViewById(R.id.qtdeLitroAlc);
	etQtdeGas = (EditText) findViewById(R.id.qtdeLitroGas);
	etQtdeDist = (EditText) findViewById(R.id.distViagem);

	etQtdeAlc.setOnFocusChangeListener(new OnFocusChangeListener() {
		@Override
		public void onFocusChange(View v, boolean hasFocus) {
			etQtdeGas.setText(String.valueOf((ltAlc * 0.30) + ltAlc));
		}

	});
	etQtdeGas.setOnFocusChangeListener(new OnFocusChangeListener() {
		@Override
		public void onFocusChange(View v, boolean hasFocus) {
			etQtdeAlc.setText(etQtdeGas.getText().toString());
		}
	});

	btCalc = (Button) findViewById(R.botao.btCalcular);
	btCalc.setOnClickListener(new View.OnClickListener() {

		@Override
		public void onClick(View arg0) {
			if (!etAlc.getText().toString().equals("")
					& !etGas.getText().toString().equals("")) {
				num1 = Double.parseDouble(etGas.getText().toString());
				num2 = Double.parseDouble(etAlc.getText().toString());

				aux = num2 / num1;

				if (!etQtdeAlc.getText().toString().equals("")
						& !etQtdeGas.getText().toString().equals("")
						& !etQtdeDist.getText().toString().equals("")) {

					kmTotal = Double.parseDouble(etQtdeDist.getText()
							.toString());
					ltAlc = Double.parseDouble(etQtdeAlc.getText()
							.toString());
					ltGas = Double.parseDouble(etQtdeGas.getText()
							.toString());

					double alcool = (kmTotal / ltAlc) * num2;
					double gasolina = (kmTotal / ltGas) * num1;

					alcool = Double.valueOf(String.format(Locale.US,
							"%.2f", alcool));
					gasolina = Double.valueOf(String.format(Locale.US,
							"%.2f", gasolina));

					if (aux >= 0.7) {
						AlertDialog.Builder caixaAlerta = new AlertDialog.Builder(
								MainActivity.this);
						caixaAlerta.setTitle("Sua melhor opção é:");
						caixaAlerta
								.setMessage("Abastecer com Gasolina!\nAbastecendo com Gasolina vai gastar: R$"
										+ gasolina
										+ "\nAbastecendo com Álcool vai gastar:  R$"
										+ alcool
										+ "\nEconomia de: R$"
										+ Double.valueOf(String.format(
												Locale.US, "%.2f",
												(alcool * 0.30) + alcool
														- gasolina)));

						caixaAlerta.setNeutralButton("OK", null);
						caixaAlerta.show();

					} else {

						AlertDialog.Builder caixaAlerta = new AlertDialog.Builder(
								MainActivity.this);
						caixaAlerta.setTitle("Sua melhor opção é:");
						caixaAlerta
								.setMessage("Abastecer com Álcool!\nAbastecendo com Álcool vai gastar: R$"
										+ alcool
										+ "\nAbastecendo com Gasolina vai gastar: R$"
										+ gasolina
										+ "\nEconomia de: R$"
										+ Double.valueOf(String.format(
												Locale.US, "%.2f", gasolina
														- alcool)));
						caixaAlerta.setNeutralButton("OK", null);
						caixaAlerta.show();

					}

				} else {

					if (aux >= 0.7) {
						AlertDialog.Builder caixaAlerta = new AlertDialog.Builder(
								MainActivity.this);
						caixaAlerta.setTitle("Sua melhor opção é:");
						caixaAlerta.setMessage("Abastecer com Gasolina!");

						caixaAlerta.setNeutralButton("OK", null);
						caixaAlerta.show();

					} else {
						AlertDialog.Builder caixaAlerta = new AlertDialog.Builder(
								MainActivity.this);
						caixaAlerta.setTitle("Sua melhor opção é:");
						caixaAlerta.setMessage("Abastecer com Álcool!");
						caixaAlerta.setNeutralButton("OK", null);
						caixaAlerta.show();

					}

				}

			} else {
				AlertDialog.Builder caixaAlerta = new AlertDialog.Builder(
						MainActivity.this);
				caixaAlerta
						.setMessage("Obrigatório o preenchimento de todos os campos na cor AZUL!");
				caixaAlerta.setTitle("Atenção!");
				caixaAlerta.setPositiveButton("Ok", null);
				caixaAlerta.show();
			}

		}
	});
}

}

Alguem pode me ajudar, o usuario preenche o campo etQtdeAlc e automaticamente preenche o campo etQtdeGas com o valor que preenchi no etQtdeAlc + 30%, e se preencher o campo etQtdeGas preenche o campo etQtdeAlc com o valor do campo etQtdeGas - 30%.

no codigo esta com ***************** a parte que estou tentando fazer isso.

Obrigado!!