0
votes

Java.Lang.NullPointerException Problème dans ListView

Je suis nouveau au développement d'Android et j'essaie de convertir une chaîne en un double, puis de l'arrondir à 2 décimales, puis de la convertir en chaîne à afficher dans une liste de réception. Voici mon code: xxx pré>

et voici l'erreur suivante: p> xxx pré>

Il fonctionne correctement sans: p>

1000.0000


0 commentaires

3 Réponses :


0
votes

Tout d'abord, vous n'avez pas publié votre code complet dans lequel vous vous convertissez de Double en chaîne et vice versa et deuxième en fonction de l'erreur 'java.lang.string java.lang.string.trim ()' Cela signifie que votre La chaîne est nulle sur laquelle vous appelez la fonction de trim. Soo Assurez-vous que la chaîne doit avoir une certaine valeur avant d'appeler cette fonction de fonction.


0 commentaires

0
votes

Il semble que expenseamount code> est null ici. Essayez de donner à vos articles dans votre liste une valeur expensamount par défaut code> ou gérer le boîtier null code>.

J'aime: p>

public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
    ...
    String expenseAmount = getItem(position).getExpenseAmount();
    ...

    String eAnew;
    if (expenseAmount == null) {
        eAnew = "I don't have an expenseAmount yet!"; // handle the null case

    else {
        Double eA = Double.parseDouble(expenseAmount);
        eAnew = String.format("%.2f", eA);
    }
    Expenses ex = new Expenses(eAnew, expenseCategory, expenseEntryDate);

    ...
}


3 commentaires

Salut Bram, ne semble pas fonctionner quand je l'ai essayé. Pourriez-vous me donner un exemple?


Eh bien, on dirait que vous avez dépense objets ou quelque chose dans votre liste (je ne peux pas dire au code). À l'intérieur de la classe Initialiser la propriété ExpenseMount pour contenir une valeur par défaut, comme "0" ou quelque chose.


Merci pour votre commentaire, Bram. J'ai corrigé la solution. Si vous le souhaitez, vous pouvez regarder l'autre commentaire pour ma solution.



1
votes

Modifiez votre code dans lequel vous avez signalé le problème et ajoute un chèque null là-bas. Ci-dessous j'ai mentionné l'échantillon de code.

String eAnew = "00.00";
        if(expenseAmount != null && !"null".equals(expenseAmount)){
            Double eA = Double.parseDouble(expenseAmount);
            eAnew = String.format("%.2f",eA);
        }


1 commentaires

Merci pour le compliment!