Bei meinem Versuch AsyncTask
erhalte ich eine E-Mail-Adresse von meinem Server. In muss onPostExecute()
ich überprüfen, ob die E-Mail-Adresse empty
oder null
. Ich habe folgenden Code verwendet, um dies zu überprüfen:
if (userEmail != null && !userEmail.isEmpty()) {
Toast.makeText(getActivity(), userEmail, Toast.LENGTH_LONG).show();
UserEmailLabel.setText(userEmail);
}
Aber in meinem Toast
sehe ich null
gedruckt. 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 überprüfen null
und empty
String?
android
android-asynctask
android-fragmentactivity
user3384985
quelle
quelle
if (userEmail != null && (!TextUtils.equals(userEmail ,"null")) && (!TextUtils.isEmpty(userEmail))){
funktioniert auchequals("null")
, um nach einem Null-Benutzernamen zu suchen. bbc.com/future/story/…userEmail.equalsIgnoreCase("null")
im Falle eines Nullwerts in Großbuchstaben zu haben.Sie können dies damit überprüfen:
if(userEmail != null && !userEmail .isEmpty())
Und denken Sie daran, dass Sie bei dieser Bestellung genau den obigen Code verwenden müssen. Weil dies sicherstellt, dass Sie keine Nullzeigerausnahme erhalten,
userEmail.isEmpty()
wenn ifuserEmail
null ist.Die obige Beschreibung ist erst seit Java SE 1.6 verfügbar. Überprüfen Sie
userEmail.length() == 0
frühere Versionen.UPDATE:
Verwendung von
isEmpty(stringVal)
Methode ausTextUtils
Klasse:if (TextUtils.isEmpty(userEmail))
Kotlin:
Verwenden Sie from
isNullOrEmpty
für null oder leere Werte ODERisNullOrBlank
für null oder leer oder besteht ausschließlich aus Leerzeichen.if (userEmail.isNullOrEmpty()) ... if (userEmail.isNullOrBlank())
quelle
Prüfen, ob eine leere Zeichenfolge gleich null ist, die Länge null ist oder eine Zeichenfolge "null" enthält
public static boolean isEmptyString(String text) { return (text == null || text.trim().equals("null") || text.trim() .length() <= 0); }
quelle
Sie können dies mit der Dienstprogrammmethode "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; }
quelle
Wenn Sie null oder leere Zeichenfolge aktivieren, 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)); }
quelle
Meine einfache Lösung, um zu testen, ob eine Zeichenfolge null ist:
if (s.equals ("null")) {.....}
Es gibt zwei Fälle.
Die Variable (vom Typ String) ist null (existiert nicht): == funktioniert.
Die Variable hat einen Nullwert, * .equals ("null") gibt den richtigen booleschen Wert an.
Siehe das Bild.
quelle
Das hat bei mir funktioniert
EditText etname = (EditText) findViewById(R.id.etname); if(etname.length() == 0){ etname.setError("Required field"); }else{ Toast.makeText(getApplicationContext(),"Saved",Toast.LENGTH_LONG).show(); }
oder Verwenden Sie dies für Zeichenfolgen
String DEP_DATE; if (DEP_DATE.equals("") || DEP_DATE.length() == 0 || DEP_DATE.isEmpty() || DEP_DATE == null){ }
quelle
Sie können lediglich die Methode equals () für ein leeres String-Literal aufrufen und das zu testende Objekt wie unten gezeigt übergeben:
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);
quelle
Wenn alle Antworten nicht funktionieren, versuchen Sie es bitte
String myString = null; if(myString.trim().equalsIgnoreCase("null")){ //do something }
quelle