Ustaw symbol rupii indyjskiej w widoku tekstu

89

Rozwijam aplikację. I muszę ustawić symbol rupii indyjskiej w widoku tekstu, który jest ustawiony jako kwota.

Symbol:

wprowadź opis obrazu tutaj

Mam plik czcionki lub .TTF tego w folderze Assets / fonts.

I próbowałem użyć go jako:

Typeface typeFace_Rupee = Typeface.createFromAsset(getAssets(),fonts/Rupee_Foradian.ttf");
TextView tvRupee = (TextView) findViewById(R.id.textview_rupee_mlsaa);
tvRupee.setTypeface(typeFace_Rupee);

// Tried to set symbol on text view as follows.
tvRupee.setText("`");

Jak wyżej, ustawiając czcionkę, otrzymałem błąd wskaźnika zerowego.

W pliku Word po wybraniu czcionki i wpisaniu `` otrzymaliśmy symbol. ale to nie działa w systemie Android.

Jakie kroki powinienem wykonać, aby to zrobić ...

Manoj Fegde
źródło
6
Po prostu użyj „\ u20B9” w ustawionym ciągu tekstowym wszędzie tam, gdzie chcesz wyświetlać symbol
Akbari Dipali,
@Akbari Dipali Próbowałem "\ u20B9", ale po uruchomieniu na emulatorze wyświetla pole w tekście. Ale przy projektowaniu układu w GUI wygląda dobrze.
Manoj Fegde
@Akbari Dipali Dziękuję. Nie działa na emulatorze, ale przetestowałem go na urządzeniu. I to działa dobrze.
Manoj Fegde
@AkbariDipali Próbuję ustawić powyżej unicode w widoku tekstowym, działa dobrze w wyższych wersjach, ale w niższych wersjach poniżej 4.0 zamiast symbolu wyświetla się okienko. Czy możesz mi pomóc. jak ustawić we wszystkich wersjach
Dory
@ Nidhi Tak, mam ten sam problem. Wygląda jak pudełko na emulatorze, ale na urządzeniu działa dobrze. Jeśli napotkasz problem, daj mi znać. A jeśli masz odpowiedź, zagłosuj za mną i ze mną.
Manoj Fegde

Odpowiedzi:

213

wprowadź opis obrazu tutaj

Cześć, używam tego w Strings

Symbol rupii do druku : <string name="Rs">\u20B9</string>

W przypadku tekstu Rs do druku : <string name="rs">\u20A8</string>

androidgeek
źródło
Próbowałem „\ u20B9”, ale po uruchomieniu na emulatorze wyświetla się ramka w tekście. Ale przy projektowaniu układu w GUI wygląda dobrze.
Manoj Fegde
Dziękuję Ci. Nie działa na emulatorze, ale przetestowałem go na urządzeniu. I to działa dobrze.
Manoj Fegde
1
W moim urządzeniu pierwsza \u20B9daje symbol rupii. Drugi \u20A8podaje tekst „R”. Tak czy inaczej, dzięki. +1
Mahendran Sakkarai
Twoja odpowiedź jest całkowicie poprawna. Nie ma wątpliwości. Ale chciałbym dodać wiersz kodu, aby pomóc początkującym w tworzeniu aplikacji na Androida. Aby korzystać z tego zasobu w Twojej programowania, trzeba zadzwonić do tego zasobu przez ciąg tej linii kodu: this.getContext().getResources().getString(R.string.Rs).
meDeepakJain,
22

Użyj, \u20B9jeśli chcesz wydrukować Rupee Symbol
i
Użyj, \u20A8jeśli chcesz drukować"Rs"

Sanyam Jain
źródło
2
spróbuj użyć gist.github.com/john1jan/a82912fb355771e565bea1720439c5dc . Poprzedza symbol rupii i dodaje nawet kwotę oddzieloną przecinkami
John
Spróbuj tego. // Tutaj jakiś kod child: Text ('\ u20B9 $ {tx.amount}') // jakiś kod tutaj
Ashish Dadhich
12

Użyj na adapterze

Viewholder.price.setText("Price: \u20B9"+dataAdapterOBJ.getPrice());
Karan Chunara
źródło
1
Chociaż ten kod może technicznie odpowiedzieć na pytanie, ty pewnie pomaga OP więcej, jeśli wyjaśnić dlaczego rozwiązuje problemu twojego kod OP
milo526
10

Spróbuj tego, zamiast Rupee_Foradian.ttfużywać Rupee.ttf , zadziała. otrzymuję symbol waluty.

Typeface tf = Typeface.createFromAsset(getAssets(), "font/Rupee.ttf");
textView1.setTypeface(tf);
textView1.setText("`");
MuraliGanesan
źródło
gr8 odpowiedź !!!! utrzymuj to w ten sposób. Wkrótce zostaniesz programistą Androida na guru !!!!
AndroidEnthusiastic
Już dodałem ten. Myślę, że źle przeczytałeś moje pytanie. Przeczytaj kod i poprawnie zadawaj pytania.
Manoj Fegde
@ManojFegde Zamiast Rupee_Foradian.ttf użyj Rupee.ttf to zadziała. zredagowałem swój post, sprawdź to. daj mi znać jakieś wyjaśnienia
MuraliGanesan
@Muraliganesan: To nie działa. Ponieważ otrzymuję błąd, ponieważ wyjątek Java.lang.RuntimeException: natywny krój pisma nie może.
Manoj Fegde
1
Dziękuję za pomoc. Ale powyższa odpowiedź jako - <string name="Rs">\u20B9</string> (or) <string name="rs">\u20A8</string> działa dla mnie.
Manoj Fegde
2

Możesz po prostu nacisnąć Alt+ Ctrl+4

Biakhuna Ralte
źródło
W zależności od klawiatury i ustawień.
Kars
1

Wypróbuj ten fragment kodu, w którym działa dobrze Xamarin.Forms

 CultureInfo india = new CultureInfo("hi-IN");

 var rupeeSymbol = india.NumberFormat.CurrencySymbol;
praveen acha
źródło
1
 public static String getIndianRupee(String value) {
    Format format = NumberFormat.getCurrencyInstance(new Locale("en", "in"));
    return format.format(new BigDecimal(value));
}
Gautam Surani
źródło
0

możesz przejść do poniższego wiersza kodu Flutter

child: Text('\u20B9 ${tx.amount}',
                        
Ashish Dadhich
źródło