SetText () kullanarak metni aşağıdaki şekilde ayarlıyorum .
prodNameView.setText("" + name);
prodOriginalPriceView.setText("" + String.format(getString(R.string.string_product_rate_with_ruppe_sign), "" + new BigDecimal(price).setScale(2, RoundingMode.UP)));
Bunda Birincisi basit kullanımdır ve İkincisi metni formatlama ile ayarlamaktır.
Android Studio çok ilginç, Menü kullandım Analyze -> Code Cleanup
ve iki satırın üstünde önerim var.
SetText ile görüntülenen metni birleştirmeyin. Yer tutucularla kaynak dizesi kullanın. daha az ... (Ctrl + F1)
Ne zaman arayarak TextView'un # setText:
- Numaraları biçimlendirmek için No # toString () 'i asla çağırmayın; kesir ayırıcıları ve yerel ayara özgü basamakları düzgün şekilde işlemez. Bunun yerine, uygun biçim belirtimlerine (% d veya% f) sahip Dize # biçimini kullanmayı düşünün.
- Metni görüntülemek için değişmez bir dize (örn. "Merhaba") iletmeyin. Sabit kodlanmış metin diğer dillere doğru bir şekilde çevrilemez. Bunun yerine Android kaynak dizelerini kullanmayı düşünün.
- Metin parçalarını birleştirerek mesaj oluşturmayın. Bu tür mesajlar doğru bir şekilde tercüme edilemez.
Bunun için ne yapabilirim? Herkes bir şeyin ne olduğunu ve ne yapmam gerektiğini açıklamaya yardımcı olabilir?
NPE
eğer name
olduğunuNULL
name
yapılmaz . NULL
setText()
<string name="string_product_rate_with_ruppe_sign">Something %1$d</string>
Ve java kodunuzda şöyle bir şey yaparsınız: prodOriginalPriceView.setText(getString(R.string.string_product_rate_with_ruppe_sign), price);
(biçimlendirmeyi xml dosyasında yapabilirsiniz: [ developer.android.com/guide/topics/resources/…
String
giriş yapmanız gerektiği anlamına gelirsetText()
. Ör:setText(name)
yerinesetText("" + name)
. Çünkü metni birleştirirseniz, mesajın bildirdiği gibi Sabit Kodlu metni kullandığınız gibi çevrilmeyecektir