Stellen Sie das indische Rupien-Symbol in der Textansicht ein


87

Ich entwickle eine Anwendung. Und ich muss das Symbol der indischen Rupie in der Textansicht festlegen, die mit dem Text als Betrag festgelegt wird.

Symbol:

Geben Sie hier die Bildbeschreibung ein

Ich habe die Schriftart oder .TTF-Datei davon im Ordner Assets / fonts.

Und ich habe versucht, es zu verwenden als:

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("`");

Wie oben beim Einstellen der Schriftart habe ich einen Nullzeigerfehler erhalten.

In der Word-Datei nach Auswahl der Schriftart und Eingabe von ` wir das Symbol erhalten. aber es funktioniert nicht in Android.

Also, welche Schritte sollte ich befolgen, um dies zu tun ...


6
Verwenden Sie einfach "\ u20B9" in Ihrer Settext-Zeichenfolge, wo immer Sie das Symbol
anzeigen

@Akbari Dipali Ich habe "\ u20B9" ausprobiert, aber es wird ein Feld im Text angezeigt, nachdem es auf dem Emulator ausgeführt wurde. Aber beim Layout-Design in der GUI sieht es gut aus.
Manoj Fegde

@ Akbari Dipali Danke. Es funktioniert nicht auf Emulator, aber ich habe es auf dem Gerät getestet. Und das funktioniert gut.
Manoj Fegde

@AkbariDipali Ich versuche, über Unicode in der Textansicht zu setzen. Es funktioniert gut in der oberen Version, aber in den unteren Versionen unter 4.0 wird ein Feld anstelle eines Symbols angezeigt. Können Sie bitte helfen. wie man in allen Versionen einstellt
Dory

@ Nidhi Ja, ich habe das gleiche Problem. Es sieht aus wie eine Box auf dem Emulator, aber auf dem Gerät läuft es gut für mich. Wenn Sie Probleme haben, lassen Sie es mich wissen. Und wenn du eine Antwort hast, dann stimme zu und ich.
Manoj Fegde

Antworten:


206

Geben Sie hier die Bildbeschreibung ein

Hallo, benutze dies in Strings

Für das Druck- Rupien-Symbol : <string name="Rs">\u20B9</string>

Zum Drucken von Rs- Text: <string name="rs">\u20A8</string>


Ich habe "\ u20B9" ausprobiert, aber nach dem Ausführen auf dem Emulator wird das Feld im Text angezeigt. Aber beim Layout-Design in der GUI sieht es gut aus.
Manoj Fegde

Danke dir. Es funktioniert nicht auf Emulator, aber ich habe es auf dem Gerät getestet. Und das funktioniert gut.
Manoj Fegde

1
In meinem Gerät \u20B9gibt der erste das Rupien-Symbol. Der zweite \u20A8gibt 'Rs' Text. Jedenfalls habe ich diesen Dank bekommen. +1
Mahendran Sakkarai

Ihre Antwort ist absolut richtig. Es gibt keinen Zweifel. Ich möchte jedoch eine Codezeile hinzufügen, um Neulingen bei der Entwicklung von Android-Apps zu helfen. Um diese Ressource in Ihrer Programmierung zu verwenden, müssen Sie diese Zeichenfolgenressource über diese Codezeile aufrufen : this.getContext().getResources().getString(R.string.Rs).
MeDeepakJain


11

Verwendung am Adapter

Viewholder.price.setText("Price: \u20B9"+dataAdapterOBJ.getPrice());

1
Während dieser Code die Frage technisch beantworten könnte, würden Sie OP wahrscheinlich mehr helfen, wenn Sie erklären, warum Ihr Code das Problem von op löst
milo526

10

Versuchen Sie dies, anstatt es zu Rupee_Foradian.ttfverwenden Rupee.ttf , wird es funktionieren. Ich bekomme ein Währungssymbol.

Typeface tf = Typeface.createFromAsset(getAssets(), "font/Rupee.ttf");
textView1.setTypeface(tf);
textView1.setText("`");

gr8 Antwort !!!! mach weiter so. Bald wirst du Android Programmierer in Guru !!!!
AndroidEnthusiastic

Ich habe diesen bereits hinzugefügt. Ich denke, Sie haben meine Frage nicht richtig gelesen. Lesen Sie den Code und stellen Sie die Frage richtig.
Manoj Fegde

@ManojFegde Anstelle von Rupee_Foradian.ttf wird Rupee.ttf verwendet, es wird funktionieren. Ich habe meinen Beitrag bearbeitet. Lassen Sie mich alle Klarstellungen wissen
MuraliGanesan

@ Wandiganesan: Es funktioniert nicht. Da ich den Fehler as- Java.lang.RuntimeException erhalte: native Schrift kann nicht.
Manoj Fegde

1
Danke für Ihre Hilfe. Aber die obige Antwort als - <string name="Rs">\u20B9</string> (or) <string name="rs">\u20A8</string> funktioniert für mich.
Manoj Fegde


1

Probieren Sie dieses Code-Snippet aus, in dem es einwandfrei funktioniert Xamarin.Forms

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

 var rupeeSymbol = india.NumberFormat.CurrencySymbol;

1
 public static String getIndianRupee(String value) {
    Format format = NumberFormat.getCurrencyInstance(new Locale("en", "in"));
    return format.format(new BigDecimal(value));
}

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.