programacion - manual de android en pdf
Comprobación de Android cadena nula o vacía en Android (8)
Use
TextUtils.isEmpty( someString )
String myString = null;
if (TextUtils.isEmpty(myString)) {
return; // or break, continue, throw
}
// myString is neither null nor empty if this point is reached
Log.i("TAG", myString);
Notas
- La documentación indica que se verifican tanto la longitud nula como la cero. No es necesario reinventar la rueda aquí.
- Una buena práctica a seguir es el regreso temprano .
En mi intento de
AsyncTask
obtengo una dirección de correo electrónico de mi servidor
En
onPostExecute()
tengo que verificar si la dirección de correo electrónico está
empty
o es
null
.
Usé el siguiente código para verificarlo:
if (userEmail != null && !userEmail.isEmpty()) {
Toast.makeText(getActivity(), userEmail, Toast.LENGTH_LONG).show();
UserEmailLabel.setText(userEmail);
}
Pero en mi
Toast
veo
null
impreso.
Mi código completo:
private class LoadPersonalData extends AsyncTask<String, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
protected Void doInBackground(String... res) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("user_id", PrefUserName));
params.add(new BasicNameValuePair("type", type_data));
JSONObject json = jsonParser.makeHttpRequest(Url, "POST", params);
String result = "";
try {
result = json.getString("message");
} catch (JSONException e) {
e.printStackTrace();
}
if (result.equals("success")) {
try {
userEmail = json.getString("email");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
if (userEmail != null && !userEmail.isEmpty()) {
Toast.makeText(getActivity(), userEmail, Toast.LENGTH_LONG).show();
UserEmailLabel.setText(userEmail);
}
}
¿Cómo puedo verificar la cadena
null
y
empty
?
Gracias por adelantado.
Del comentario de @Jon Skeet, realmente el valor de la
String
es
"null"
.
El siguiente código lo resolvió
if (userEmail != null && !userEmail.isEmpty() && !userEmail.equals("null"))
Esto funciono para mi
EditText etname = (EditText) findViewById(R.id.etname);
if(etname.length() == 0){
etname.setError("Required field");
}else{
Toast.makeText(getApplicationContext(),"Saved",Toast.LENGTH_LONG).show();
}
o Use esto para cadenas
String DEP_DATE;
if (DEP_DATE.equals("") || DEP_DATE.length() == 0 || DEP_DATE.isEmpty() || DEP_DATE == null){
}
Puede verificarlo con el método de utilidad "isEmpty" de TextUtils,
El método isEmpty (CharSequence str) verifica ambas condiciones, para nulo y longitud.
public static boolean isEmpty(CharSequence str) {
if (str == null || str.length() == 0)
return true;
else
return false;
}
Puedes comprobarlo con esto:
if(userEmail != null && !userEmail .isEmpty())
Y recuerde que debe usar el código exacto anterior con ese orden.
Porque eso garantiza que no obtendrá una excepción de puntero nulo de
userEmail.isEmpty()
si
userEmail
es nulo.
Por encima de la descripción, solo está disponible desde Java SE 1.6.
Verifique
userEmail.length() == 0
en versiones anteriores.
ACTUALIZAR:
Uso del
isEmpty(stringVal)
de la clase
TextUtils
:
if (TextUtils.isEmpty(userEmail))
Todo lo que puede hacer es llamar al método equals () en un literal de cadena vacío y pasar el objeto que está probando como se muestra a continuación:
String nullString = null;
String empty = new String();
boolean test = "".equals(empty); // true
System.out.println(test);
boolean check = "".equals(nullString); // false
System.out.println(check);
si marca String nulo o vacío para que pueda probar esto
if (createReminderRequest.getDate() == null && createReminderRequest.getDate().trim().equals("")){
DialogUtility.showToast(this, ProjectUtils.getString(R.string.please_select_date_n_time));
}
Verificando si hay una cadena vacía si es igual a nulo, la longitud es cero o si contiene una cadena "nula"
public static boolean isEmptyString(String text) {
return (text == null || text.trim().equals("null") || text.trim()
.length() <= 0);
}