Establecer el símbolo de la rupia india en la vista de texto


89

Estoy desarrollando una aplicación. Y necesito establecer el símbolo de la rupia india en la vista de texto que se establece con el texto como cantidad.

Símbolo:

ingrese la descripción de la imagen aquí

Tengo la fuente o el archivo .TTF de esto en la carpeta Activos / fuentes.

Y traté de usarlo como:

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

Como se indicó anteriormente, al configurar la fuente, obtuve un error de puntero nulo.

En el archivo de Word después de elegir la fuente y escribir ` obtuvimos el símbolo. pero no funciona en Android.

Entonces, ¿qué pasos debo seguir para hacer esto ...


6
Simplemente use "\ u20B9" en su cadena de texto de conjunto donde quiera que se muestre el símbolo
Akbari Dipali

@Akbari Dipali Intenté "\ u20B9" pero aparece un cuadro en el texto después de ejecutarlo en el emulador. Pero en el diseño de diseño en GUI se ve bien.
Manoj Fegde

@Akbari Dipali Gracias. No funciona en el emulador pero lo probé en el dispositivo. Y funciona bien en eso.
Manoj Fegde

@AkbariDipali Estoy tratando de establecer unicode arriba en la vista de texto, funciona bien en la versión superior pero en las versiones inferiores por debajo de 4.0 se muestra un cuadro en lugar de un símbolo. ¿Puedes ayudarme? cómo configurar en todas las versiones
Dory

@Nidhi Sí, tengo el mismo problema. Parece una caja en el emulador pero en el dispositivo funciona bien para mí. Si tiene algún problema, hágamelo saber. Y si tienes una respuesta, vota a favor y a mí.
Manoj Fegde

Respuestas:


213

ingrese la descripción de la imagen aquí

Hola, usa esto en Strings

Para imprimir el símbolo de la rupia : <string name="Rs">\u20B9</string>

Para imprimir texto Rs : <string name="rs">\u20A8</string>


Intenté "\ u20B9" pero aparece un cuadro en el texto después de ejecutarlo en el emulador. Pero en el diseño de diseño en GUI se ve bien.
Manoj Fegde

Gracias. No funciona en el emulador pero lo probé en el dispositivo. Y funciona bien en eso.
Manoj Fegde

1
En mi dispositivo, el primero \u20B9muestra el símbolo de rupias. El segundo \u20A8da texto con 'Rs'. De todos modos lo tengo gracias. +1
Mahendran Sakkarai

Tu respuesta es absolutamente correcta. No hay duda. Pero me gustaría agregar una línea de código para ayudar a los novatos en el desarrollo de aplicaciones de Android. Para utilizar este recurso en su programación, es necesario llamar a este recurso de cadena a través de esta línea de código: this.getContext().getResources().getString(R.string.Rs).
meDeepakJain


12

usar en adaptador

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

1
Si bien este código técnicamente podría responder a la pregunta, probablemente ayudaría más a OP si explicara por qué su código resuelve el problema de op
milo526

10

Prueba esto, en lugar de Rupee_Foradian.ttfusarlo Rupee.ttf funcionará. estoy obteniendo el símbolo de moneda.

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

gr8 respuesta !!!! sigue así. pronto te convertirás en programador de android en guru !!!!
AndroidEnthusiastic

Ya agregué este. Creo que no leyó correctamente mi pregunta. Lea el código y pregunte correctamente.
Manoj Fegde

@ManojFegde En lugar de Rupee_Foradian.ttf use Rupee.ttf funcionará. He editado mi publicación compruébalo. déjeme saber cualquier aclaración
MuraliGanesan

@Muraliganesan: No está funcionando. Como recibo un error como: Java.lang.RuntimeException: el tipo de letra nativo no puede.
Manoj Fegde

1
Gracias por tu ayuda. Pero la respuesta anterior como - <string name="Rs">\u20B9</string> (or) <string name="rs">\u20A8</string> funciona para mí.
Manoj Fegde



1

Pruebe este fragmento de código en el que funciona bien 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

puedes ir con la siguiente línea de código para Flutter

child: Text('\u20B9 ${tx.amount}',
                        
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.