studio programacion herramientas fundamentos con avanzado aplicaciones android android-asynctask android-fragmentactivity

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); }