In meinem Versuch AsyncTask
bekomme ich eine E-Mail-Adresse von meinem Server. In onPostExecute()
muss ich die E-Mail-Adresse empty
oder null
prüfen. Ich habe folgenden Code verwendet, um das zu überprüfen:
if (userEmail != null && !userEmail.isEmpty()) {
Toast.makeText(getActivity(), userEmail, Toast.LENGTH_LONG).show();
UserEmailLabel.setText(userEmail);
}
Aber in meiner Toast
sehe ich, dass null
gedruckt wird. Mein vollständiger Code:
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);
}
}
Wie kann ich nach null
und empty
string suchen? Danke im Voraus.
Aus dem Kommentar von @Jon Skeet lautet der String
-Wert wirklich "null"
. Der folgende Code hat es gelöst
if (userEmail != null && !userEmail.isEmpty() && !userEmail.equals("null"))
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);
Anmerkungen
Überprüfung auf leere Zeichenfolge, wenn diese gleich Null ist, Länge Null ist oder "Null" -Zeichenfolge enthält
public static boolean isEmptyString(String text) {
return (text == null || text.trim().equals("null") || text.trim()
.length() <= 0);
}
Sie können es damit überprüfen:
if(userEmail != null && !userEmail .isEmpty())
Und denken Sie daran, dass Sie bei dieser Bestellung genau den obigen Code verwenden müssen. Da dies gewährleistet wird, erhalten Sie keine Nullzeigerausnahme von userEmail.isEmpty()
, wenn userEmail
null ist.
Diese Beschreibung ist nur seit Java SE 1.6 verfügbar. Überprüfen Sie userEmail.length() == 0
in früheren Versionen.
UPDATE:
Verwenden Sie die Methode isEmpty(stringVal)
aus der Klasse TextUtils
:
if (TextUtils.isEmpty(userEmail))
Sie können es mit der Utility-Methode "isEmpty" von TextUtils überprüfen.
die Methode isEmpty (CharSequence str) überprüft beide Bedingungen auf Null und Länge.
public static boolean isEmpty(CharSequence str) {
if (str == null || str.length() == 0)
return true;
else
return false;
}
wenn Sie null oder leere Zeichenfolge auswählen, können Sie dies versuchen
if (createReminderRequest.getDate() == null && createReminderRequest.getDate().trim().equals("")){
DialogUtility.showToast(this, ProjectUtils.getString(R.string.please_select_date_n_time));
}
Alles, was Sie tun können, ist, die equals () -Methode für ein leeres String-Literal aufzurufen und das zu testende Objekt zu übergeben, wie unten gezeigt:
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);