Como validar um campo de texto? [Resolvido]

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.