ตั้งค่าสัญลักษณ์รูปีของอินเดียในมุมมองข้อความ


90

ฉันกำลังพัฒนาแอปพลิเคชัน และฉันต้องตั้งค่าสัญลักษณ์ของรูปีอินเดียในมุมมองข้อความซึ่งตั้งค่าด้วยข้อความเป็นจำนวนเงิน

สัญลักษณ์:

ป้อนคำอธิบายภาพที่นี่

ฉันมีแบบอักษรหรือไฟล์. TTF ของสิ่งนี้ในโฟลเดอร์ Assets / แบบอักษร

และฉันพยายามใช้เป็น:

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

ข้างต้นการตั้งค่าแบบอักษรฉันได้รับข้อผิดพลาดตัวชี้โมฆะ

ในแฟ้มคำหลังจากเลือกตัวอักษรและการพิมพ์`เราได้สัญลักษณ์ แต่มันไม่ทำงานใน Android

แล้วต้องทำตามขั้นตอนอะไรบ้างเพื่อทำสิ่งนี้ ...


7
เพียงใช้ "\ u20B9" ในสตริง settext ของคุณทุกที่ที่คุณต้องการแสดงสัญลักษณ์
Akbari Dipali

@Akbari Dipali ฉันลอง "\ u20B9" แต่มันแสดงช่องในข้อความหลังจากทำงานบนโปรแกรมจำลอง แต่ที่การออกแบบเค้าโครงใน GUI นั้นดูดี
Manoj Fegde

@Akbari Dipali ขอบคุณค่ะ มันไม่ทำงานบน Emulator แต่ฉันทดสอบบนอุปกรณ์แล้ว มันใช้งานได้ดีในเรื่องนั้น
Manoj Fegde

@AkbariDipali ฉันพยายามตั้งค่า Unicode ด้านบนในมุมมองข้อความมันทำงานได้ดีในเวอร์ชันบน แต่ในเวอร์ชันที่ต่ำกว่า 4.0 จะแสดงกล่องแทนสัญลักษณ์ คุณสามารถช่วย. วิธีการตั้งค่าในทุกเวอร์ชัน
Dory

@ Nidhi ใช่ฉันมีปัญหาเดียวกัน ดูเหมือนกล่องบนโปรแกรมจำลอง แต่บนอุปกรณ์มันทำงานได้ดีสำหรับฉัน หากคุณประสบปัญหาโปรดแจ้งให้เราทราบ และถ้าคุณได้รับคำตอบแล้วโหวตให้คะแนนฉัน
Manoj Fegde

คำตอบ:


215

enter image description here

สวัสดีใช้สิ่งนี้ใน Strings

สำหรับพิมพ์สัญลักษณ์รูปี : <string name="Rs">\u20B9</string>

สำหรับพิมพ์ข้อความRs : <string name="rs">\u20A8</string>


ฉันลอง "\ u20B9" แต่มันแสดงช่องในข้อความหลังจากที่รันบนโปรแกรมจำลอง แต่ที่การออกแบบเค้าโครงใน GUI นั้นดูดี
Manoj Fegde

ขอขอบคุณ. มันไม่ทำงานบน Emulator แต่ฉันทดสอบบนอุปกรณ์แล้ว มันใช้งานได้ดีในเรื่องนั้น
Manoj Fegde

1
ในอุปกรณ์ของฉันสิ่งแรก\u20B9ให้สัญลักษณ์รูปี ข้อความที่สอง\u20A8ให้ข้อความ 'Rs' อย่างไรก็ตามฉันได้รับคำขอบคุณ +1
Mahendran Sakkarai

คำตอบของคุณถูกต้องที่สุด ไม่ต้องสงสัยเลย แต่ฉันต้องการเพิ่มบรรทัดของโค้ดเพื่อช่วยมือใหม่ในการพัฒนาแอพ Android this.getContext().getResources().getString(R.string.Rs)ในการใช้ทรัพยากรนี้ในการเขียนโปรแกรมของคุณคุณจะต้องเรียกทรัพยากรสายนี้ผ่านบรรทัดของรหัสนี้:
meDeepakJain

22

ใช้\u20B9ถ้าคุณต้องการพิมพ์Rupee Symbol
และ
ใช้\u20A8ถ้าคุณต้องการพิมพ์"Rs"


2
ลองใช้gist.github.com/john1jan/a82912fb355771e565bea1720439c5dc มันนำหน้าสัญลักษณ์รูปีและเพิ่มแม้กระทั่งให้จำนวนที่คั่นด้วยจุลภาค
John

ลองดู // โค้ดบางส่วนที่นี่เด็ก: ข้อความ ('\ u20B9 $ {tx.amount}') // โค้ดบางส่วนที่นี่
Ashish Dadhich

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

ฉันเพิ่มอันนี้แล้ว ฉันคิดว่าคุณอ่านคำถามของฉันไม่ถูกต้อง อ่านรหัสและคำถามอย่างถูกต้อง
Manoj Fegde

@ManojFegde แทนที่จะใช้ Rupee_Foradian.ttf ให้ใช้ Rupee.ttf มันจะใช้ได้ ฉันได้แก้ไขโพสต์ของฉันตรวจสอบ แจ้งให้เราทราบคำชี้แจงใด ๆ
MuraliGanesan

@Muraliganesan: มันไม่ทำงาน เนื่องจากฉันได้รับข้อผิดพลาดเป็น - Java.lang.RuntimeException: แบบอักษรดั้งเดิมไม่สามารถทำได้
Manoj Fegde

1
ขอขอบคุณสำหรับความช่วยเหลือของคุณ. แต่คำตอบข้างต้นเป็น - <string name="Rs">\u20B9</string> (or) <string name="rs">\u20A8</string> ใช้ได้ผลสำหรับฉัน
Manoj Fegde



1

ลองใช้ข้อมูลโค้ดนี้ที่ใช้งานได้ดี Xamarin.Forms

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

 var rupeeSymbol = india.NumberFormat.CurrencySymbol;


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.