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(); }
}
Ai sim você consegue saber se a String dentro do EditText está vazia ou não.
E
EduardoWill
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:
packagesax.teste.xml;importjavax.xml.datatype.Duration;importcom.google.android.maps.MapActivity;importandroid.app.Activity;importandroid.app.AlertDialog;importandroid.content.Context;importandroid.content.DialogInterface;importandroid.content.Intent;importandroid.net.ConnectivityManager;importandroid.os.Bundle;importandroid.text.Editable;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.view.ViewGroup;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.TextView;importandroid.widget.Toast;publicclassSAXActivityextendsActivity{XMLGettersSettersdata;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);Buttonb=(Button)findViewById(R.id.btnCalcular);b.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){buscarMapa();}});}protectedvoidbuscarMapa(){TextViewlatitude[];TextViewlongitude[];TextViewdistancia[];TextViewduracao[];TextViewendereco_ini[];TextViewendereco_fin[];Viewlayout=findViewById(R.id.layout);finalEditTextorigem=(EditText)findViewById(R.id.editTextPartida);finalEditTextdestino=(EditText)findViewById(R.id.editTextDestino);StringorigemText=origem.getText().toString();StringdestinoText=destino.getText().toString();validaCampo(origem);validaCampo2(destino);if(checkInternetConnection()){XMLServicemyXMLService=newXMLService();XMLService.googleXMLData(origem,destino);data=XMLHandler.data;latitude=newTextView[data.getLatitude().size()];longitude=newTextView[data.getLongitude().size()];endereco_ini=newTextView[data.getEndereco_ini().size()];endereco_fin=newTextView[data.getEndereco_fin().size()];distancia=newTextView[data.getDistancia().size()];duracao=newTextView[data.getDuracao().size()];//pega o nome do endereço inicialendereco_ini[0]=newTextView(this);endereco_ini[0].setText(data.getEndereco_ini().get(0));((ViewGroup)layout).addView(endereco_ini[0]);endereco_fin[0]=newTextView(this);endereco_fin[0].setText(data.getEndereco_fin().get(0));((ViewGroup)layout).addView(endereco_fin[0]);inti=data.getDistancia().size()-1;distancia[0]=newTextView(this);inty=Integer.parseInt(data.getDistancia().get(i))*2;distancia[0].setText("Distancia "+y);((ViewGroup)layout).addView(distancia[0]);intid=data.getDuracao().size()-1;duracao[0]=newTextView(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();}}privatebooleancheckInternetConnection(){ConnectivityManagercm=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);// test for connectionif(cm.getActiveNetworkInfo()!=null&&cm.getActiveNetworkInfo().isAvailable()&&cm.getActiveNetworkInfo().isConnected()){returntrue;}else{returnfalse;}}protectedvoidonStart1(){if(!AppStatus.getInstance(this).isOnline(this)){AlertDialog.Builderalerta=newAlertDialog.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",newDialogInterface.OnClickListener(){publicvoidonClick(DialogInterfacedialog,intwhich){// TODO Auto-generated method stubToast.makeText(SAXActivity.this,"OK",Toast.LENGTH_LONG);finish();}});alerta.show();}}protectedvoidvalidaCampo(EditTextorigem){if(origem.getText().toString().equals(null)){Toast.makeText(SAXActivity.this,"Data inválida!",Toast.LENGTH_LONG).show();}}protectedvoidvalidaCampo2(EditTextdestino){if(destino.getText().toString().equals("")){Toast.makeText(SAXActivity.this,"Data inválida!",Toast.LENGTH_LONG).show();}}}
Podem me ajudar?
Já tentei de varias formas, mas ainda sem sucesso.
E
EduardoWill
Pessoal obrigado pela ajuda.
O método para validar um campo EditText funciona perfeitamente eu que coloquei no lugar errado a validação