Ich setze Text mit setText () wie folgt.
prodNameView.setText("" + name);
prodOriginalPriceView.setText("" + String.format(getString(R.string.string_product_rate_with_ruppe_sign), "" + new BigDecimal(price).setScale(2, RoundingMode.UP)));
In diesem ersten Fall ist die Verwendung einfach und im zweiten Fall wird Text mit Formatierungstext festgelegt.
Android Studio ist so sehr interessant, ich habe Menü verwendet Analyze -> Code Cleanup
und ich habe Vorschläge über zwei Zeilen wie bekommen.
Verketten Sie den mit setText angezeigten Text nicht. Verwenden Sie eine Ressourcenzeichenfolge mit Platzhaltern. weniger ... (Strg + F1)
Beim Aufrufen von TextView # setText:
- Rufen Sie niemals Number # toString () auf, um Nummern zu formatieren. Bruchtrennzeichen und länderspezifische Ziffern werden nicht richtig behandelt. Verwenden Sie stattdessen das String # -Format mit den richtigen Formatspezifikationen (% d oder% f).
- Übergeben Sie kein Zeichenfolgenliteral (z. B. "Hallo"), um Text anzuzeigen. Hardcodierter Text kann nicht richtig in andere Sprachen übersetzt werden. Verwenden Sie stattdessen Android-Ressourcenzeichenfolgen.
- Erstellen Sie keine Nachrichten, indem Sie Textblöcke verketten. Solche Nachrichten können nicht richtig übersetzt werden.
Was kann ich dafür tun? Jeder kann helfen zu erklären, was die Sache ist und was ich tun soll?
NPE
wenn es name
istNULL
name
ist nicht NULL
vor Verwendung der setText()
Funktion.
<string name="string_product_rate_with_ruppe_sign">Something %1$d</string>
Und in Ihrem Java-Code tun Sie Folgendes : prodOriginalPriceView.setText(getString(R.string.string_product_rate_with_ruppe_sign), price);
(Sie können die Formatierung in der XML-Datei
String
in übergebensetText()
. Bsp.:setText(name)
Anstelle vonsetText("" + name)
. Denn wenn Sie Text verketten, wird er nicht so übersetzt, als würden Sie fest codierten Text als Benachrichtigung für die Nachricht verwenden