Impostare il simbolo della rupia indiana sulla visualizzazione testo


89

Sto sviluppando un'applicazione. E ho bisogno di impostare il simbolo della rupia indiana sulla visualizzazione del testo che è impostato con il testo come importo.

Simbolo:

inserisci qui la descrizione dell'immagine

Ho il font o il file .TTF di questo nella cartella Assets / fonts.

E ho provato a usarlo come:

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

Come sopra l'impostazione del carattere ho ricevuto un errore del puntatore nullo.

Nel file word dopo aver scelto il carattere e digitato ` abbiamo ottenuto il simbolo. ma non funziona in Android.

Quindi quali passaggi devo seguire per farlo ...


6
Usa semplicemente "\ u20B9" nella stringa settext dove vuoi mostrare il simbolo
Akbari Dipali

@ Akbari Dipali Ho provato "\ u20B9" ma mostra la casella nel testo dopo aver eseguito l'emulatore. Ma al design del layout nella GUI sembra a posto.
Manoj Fegde

@ Akbari Dipali Grazie. Non funziona su Emulator ma l'ho testato sul dispositivo. E su questo funziona bene.
Manoj Fegde

@AkbariDipali Sto cercando di impostare sopra Unicode in visualizzazione testo, funziona bene nella versione superiore ma nelle versioni inferiori sotto 4.0 mostra una casella invece del simbolo. Puoi per favore aiutare. come impostare in tutte le versioni
Dory

@ Nidhi Sì, ho avuto lo stesso problema. Sembra una scatola sull'emulatore ma sul dispositivo funziona bene per me. Se hai problemi, fammelo sapere. E se hai una risposta, vota a favore e io.
Manoj Fegde

Risposte:


213

inserisci qui la descrizione dell'immagine

Ciao, usa questo in Strings

Per il simbolo della rupia stampata : <string name="Rs">\u20B9</string>

Per stampare il testo Rs : <string name="rs">\u20A8</string>


Ho provato "\ u20B9" ma mostra la casella nel testo dopo l'esecuzione sull'emulatore. Ma al design del layout nella GUI sembra a posto.
Manoj Fegde

Grazie. Non funziona su Emulator ma l'ho testato sul dispositivo. E su questo funziona bene.
Manoj Fegde

1
Nel mio dispositivo il primo \u20B9dà il simbolo delle rupie. Il secondo \u20A8fornisce il testo "Rs". Comunque ho avuto questo grazie. +1
Mahendran Sakkarai

La tua risposta è assolutamente corretta. Non c'è dubbio. Ma vorrei aggiungere una riga di codice per aiutare i neofiti nello sviluppo di app Android. Per utilizzare questa risorsa nella vostra programmazione, è necessario chiamare questa risorsa stringa attraverso questa riga di codice: this.getContext().getResources().getString(R.string.Rs).
meDeepakJain


12

utilizzare su adattatore

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

1
Anche se questo codice potrebbe tecnicamente rispondere alla domanda, probabilmente aiuteresti di più OP se spieghi perché il tuo codice risolve il problema di op
milo526

10

Prova questo, invece di Rupee_Foradian.ttfusarlo Rupee.ttf funzionerà. sto ottenendo il simbolo di valuta.

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

gr8 risposta !!!! continuate così. presto andrai da programmatore Android in guru !!!!
AndroidEnthusiastic

Ho già aggiunto questo. Penso che tu non abbia letto correttamente la mia domanda. Leggi correttamente il codice e la domanda.
Manoj Fegde

@ManojFegde Invece di Rupee_Foradian.ttf usa Rupee.ttf funzionerà. ho modificato il mio post controllalo. fammi sapere eventuali chiarimenti
MuraliGanesan

@ Muraliganesan: non funziona. Poiché ricevo un errore come: Java.lang.RuntimeException: il carattere tipografico nativo non può.
Manoj Fegde

1
Grazie per l'aiuto. Ma la risposta di cui sopra come - <string name="Rs">\u20B9</string> (or) <string name="rs">\u20A8</string> sta funzionando per me.
Manoj Fegde



1

Prova questo snippet di codice in cui funziona correttamente 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));
}

0

puoi andare con la riga di codice sottostante per Flutter

child: Text('\u20B9 ${tx.amount}',
                        
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.