Ich bekomme eine NullPointerException
, wenn ich formatiere Datum mit meiner StringUtils
Klasse. Wenn ich es ohne StringUtils
benutze, funktioniert es einfach gut.Datenbindung geben NullPointerException bei Verwendung mit statischen Methode
Ich habe die Importanweisung für StringUtils
Ich habe habe dieses Bild:
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@{StringUtils.getFormattedDate(user.date)}" />
Das gibt mir einen Fehler in meiner StringUtils
Methode:
public static String getFormattedDate(String unformattedDate) {
// unformattedDate will be in format of yyyy-mm-dd
// Convert it to d mmm, yyyy
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String date = null;
try {
Date d = df.parse(unformattedDate); // <<--------- Here
SimpleDateFormat dateFormat = new SimpleDateFormat("d MMM, yyyy");
date = dateFormat.format(d.getTime());
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
Wenn ich mit Debugger überprüft, unformattedDate
ist null
von Anfang an. Die korrekte Methode wird aufgerufen, aber der übergebene Wert ist null
. Das ist merkwürdig.
Wenn ich es so in der Layout-Datei verwenden:
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@{user.date}" />
Es gibt mir keinen Fehler, und das Datum auf dem Bildschirm angezeigt wird!
Ich habe versucht, das Projekt zu reinigen und es erneut auszuführen. Aber kein Erfolg.
wo und wann stellen Sie den Wert für 'user' ein? –
Es wird async mithilfe der Firebase-Datenbank abgerufen. Ist das ein Problem? – kirtan403