Установить символ индийской рупии на текстовом представлении

89

Я разрабатываю приложение. И мне нужно установить символ индийской рупии в текстовом представлении, который установлен с текстом в качестве суммы.

Символ:

введите описание изображения здесь

У меня есть шрифт или файл .TTF этого в папке Assets / fonts.

И я пытался использовать это как:

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

Как и при установке шрифта выше, я получил ошибку нулевого указателя.

В файле Word после выбора шрифта и набора ` мы получили символ. но он не работает в android.

Итак, какие шаги я должен выполнить, чтобы сделать это ...

Манодж Фегде
источник
6
Просто используйте «\ u20B9» в строке settext везде, где хотите отображать символ
Акбари Дипали
@Akbari Dipali Я попробовал "\ u20B9", но после запуска на эмуляторе он показывает текстовое поле. Но при оформлении макета в GUI все выглядит нормально.
Manoj Fegde 02
@Akbari Dipali Спасибо. Он не работает на эмуляторе, но я тестировал его на устройстве. И он отлично работает с этим.
Manoj Fegde 02
@AkbariDipali Я пытаюсь установить выше unicode в текстовом представлении, он хорошо работает в верхней версии, но в более низких версиях ниже 4.0 отображается поле вместо символа. Не могли бы вы помочь. как ставить во всех версиях
Дори
@Nidhi Да, у меня такая же проблема. Он выглядит как коробка на эмуляторе, но на устройстве у меня все работает нормально. Если вы столкнулись с проблемой, дайте мне знать. И если вы получили ответ, тогда проголосуйте за меня и за меня.
Manoj Fegde

Ответы:

213

введите описание изображения здесь

Привет, используйте это в строках

Для печати символа рупии : <string name="Rs">\u20B9</string>

Для печати текста рупий : <string name="rs">\u20A8</string>

androidgeek
источник
Я попробовал "\ u20B9", но после запуска в эмуляторе он показывает текстовое поле. Но при оформлении макета в GUI все выглядит нормально.
Manoj Fegde 02
Спасибо. Он не работает на эмуляторе, но я тестировал его на устройстве. И он отлично работает с этим.
Manoj Fegde 02
1
В моем устройстве первая \u20B9выдает символ рупии. Второй \u20A8дает текст «Rs». В любом случае, спасибо. +1
Махендран Саккарай
Ваш ответ абсолютно правильный. Нет никаких сомнений в том. Но я хотел бы добавить строку кода, чтобы помочь новичкам в разработке приложений для Android. Для того, чтобы использовать этот ресурс в программировании, вам нужно вызвать этот строковый ресурс через эту строку кода: this.getContext().getResources().getString(R.string.Rs).
meDeepakJain 05
22

Используйте, \u20B9если хотите распечатать, Rupee Symbol
и
Используйте, \u20A8если хотите распечатать"Rs"

Саньям Джайн
источник
2
попробуйте использовать gist.github.com/john1jan/a82912fb355771e565bea1720439c5dc . Он ставит префикс символа рупии и добавляет даже сумму, разделенную запятыми
Джон
попробуй это. // Здесь какой-то код child: Text ('\ u20B9 $ {tx.amount}') // здесь какой-то код
Ашиш Дадхич
12

использовать на адаптере

Viewholder.price.setText("Price: \u20B9"+dataAdapterOBJ.getPrice());
Каран Чунара
источник
1
Хотя этот код может технически ответить на вопрос, вы, вероятно, поможете OP больше, если объясните, почему ваш код решает проблему op
milo526
10

Попробуйте это, вместо Rupee_Foradian.ttfиспользования Rupee.ttf это будет работать. я получаю символ валюты.

Typeface tf = Typeface.createFromAsset(getAssets(), "font/Rupee.ttf");
textView1.setTypeface(tf);
textView1.setText("`");
МуралиГанесан
источник
gr8 ответ !!!! продолжай в том же духе. скоро ты будешь андроид программистом в гуру !!!!
AndroidEnthusiastic 01
Я уже добавил это. Думаю, вы неправильно прочитали мой вопрос. Прочтите код и задавайте вопросы правильно.
Manoj Fegde 02
@ManojFegde Вместо Rupee_Foradian.ttf используйте Rupee.ttf, он будет работать. я отредактировал свой пост, проверьте это. дайте мне знать любые разъяснения
MuraliGanesan
@Muraliganesan: Это не работает. Поскольку я получаю сообщение об ошибке - Java.lang.RuntimeException: собственный шрифт не может.
Manoj Fegde 02
1
Спасибо за помощь. Но приведенный выше ответ как - <string name="Rs">\u20B9</string> (or) <string name="rs">\u20A8</string> работает для меня.
Manoj Fegde 02
2

Вы можете просто нажать Alt+ Ctrl+4

Биахуна Ралте
источник
В зависимости от вашей клавиатуры и настроек.
Карс
1

Попробуйте этот фрагмент кода, он отлично работает 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

вы можете использовать следующую строку кода для Flutter

child: Text('\u20B9 ${tx.amount}',
                        
Ашиш Дадхич
источник