Oi, pessoal.
Tenho a seguinte dúvida, eu estou enviando um EditText, mas preciso me certificar que ele não está vazio antes de enviar para o método, porquê ele cria um array e se estiver vazio eu tenho o erro:
java.lang.ArrayIndexOutOfBoundsException
Alguém sabe como?
Tentei da seguinte forma, mas sem sucesso.
protected void validaCampo( EditText origem){
if ( origem== null) {Toast.makeText(SAXActivity.this, "Digite um endereço!", Toast.LENGTH_LONG).show(); }
}
Opa,
na variavel origem, você precisa fazer:
Ai sim você consegue saber se a String dentro do EditText está vazia ou não.
Oi, eu criei conforme orientado, mas o erro continua e eu não consigo localizar aonde está.
Eu sei que o erro está ocorrendo por causa do campo estar vazio, porém eu não estou conseguindo colocar a validação no local certo para impedir que seja enviado vazio.
A classe é esta abaixo:
[code]
package sax.teste.xml;
import javax.xml.datatype.Duration;
import com.google.android.maps.MapActivity;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class SAXActivity extends Activity {
XMLGettersSetters data;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b =(Button)findViewById(R.id.btnCalcular);
b.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
buscarMapa();
}
});
}
protected void buscarMapa(){
TextView latitude[];
TextView longitude[];
TextView distancia[];
TextView duracao[];
TextView endereco_ini[];
TextView endereco_fin[];
View layout = findViewById(R.id.layout);
final EditText origem = (EditText) findViewById(R.id.editTextPartida);
final EditText destino = (EditText) findViewById(R.id.editTextDestino);
String origemText =origem.getText().toString();
String destinoText =destino.getText().toString();
validaCampo(origem);
validaCampo2(destino);
if (checkInternetConnection())
{
XMLService myXMLService = new XMLService();
XMLService.googleXMLData(origem, destino);
data = XMLHandler.data;
latitude = new TextView[data.getLatitude().size()];
longitude = new TextView[data.getLongitude().size()];
endereco_ini = new TextView[data.getEndereco_ini().size()];
endereco_fin = new TextView[data.getEndereco_fin().size()];
distancia = new TextView[data.getDistancia().size()];
duracao = new TextView[data.getDuracao().size()];
//pega o nome do endereço inicial
endereco_ini[0] = new TextView(this);
endereco_ini[0].setText(data.getEndereco_ini().get(0));
((ViewGroup) layout).addView(endereco_ini[0]);
endereco_fin[0] = new TextView(this);
endereco_fin[0].setText(data.getEndereco_fin().get(0));
((ViewGroup) layout).addView(endereco_fin[0]);
int i =data.getDistancia().size()-1;
distancia[0] = new TextView(this);
int y =Integer.parseInt( data.getDistancia().get(i))*2;
distancia[0].setText("Distancia "+y);
((ViewGroup) layout).addView(distancia[0]);
int id =data.getDuracao().size()-1 ;
duracao[0] = new TextView(this);
duracao[0].setText("Duraçao: "+data.getDuracao().get(id));
((ViewGroup) layout).addView(duracao[0]);
setContentView(layout);
//Intent intent = new Intent(this, Mapa.class);
//startActivity(intent);
}
else{onStart1();}
}
private boolean checkInternetConnection() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
// test for connection
if (cm.getActiveNetworkInfo() != null
&& cm.getActiveNetworkInfo().isAvailable()
&& cm.getActiveNetworkInfo().isConnected()) {
return true;
} else {
return false;
}
}
protected void onStart1(){
if (!AppStatus.getInstance(this).isOnline(this)) {
AlertDialog.Builder alerta = new AlertDialog.Builder(SAXActivity.this);
alerta.setTitle("Alerta de Serviço");
alerta.setMessage("Ative o serviço de Internet!!!");
//Log.v("Home", "############################You are not online!!!!");
alerta.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(SAXActivity.this, "OK", Toast.LENGTH_LONG);
finish();
}
});
alerta.show();
}
}
protected void validaCampo( EditText origem){
if ( origem.getText().toString().equals(null) ) {Toast.makeText(SAXActivity.this, "Data inválida!", Toast.LENGTH_LONG).show(); }
}
protected void validaCampo2( EditText destino){
if ( destino.getText().toString().equals("") ) {Toast.makeText(SAXActivity.this, "Data inválida!", Toast.LENGTH_LONG).show(); }
}
}
[/code]
Podem me ajudar?
Já tentei de varias formas, mas ainda sem sucesso.
Pessoal obrigado pela ajuda.
O método para validar um campo EditText funciona perfeitamente eu que coloquei no lugar errado a validação
protected void validaCampo( EditText origem){
if ( origem.getText().toString().equals(null) ) {Toast.makeText(SAXActivity.this, "Data inválida!", Toast.LENGTH_LONG).show(); }
}
Muito obrigado a todos pela ajuda.