View Full Version : تشخیص زبان صفحه کلید کاربر
samiasoft
سه شنبه 29 خرداد 1397, 18:18 عصر
سلام دوستان
من یک EditText دارم که میخواستم هنگامی که کاربر داخلش تایپ میکند شرطی بزاریم که :
اگر صفحه کلید کاربر درحالت انگلیسی قرار دارد و متن انگلیسی تایپ میکند فلان کار انجام شود
و اگر صفحه کلید کاربر در حالت فارسی قرار دارد و متن فارسی تایپ میکند فلان کار انجام شود.
ممنون میشوم راهنمایی کنید.
دستور زیر فقط زبان دستگاه رو نمایش میده :
Locale.getDefault().getDisplayLanguage();
samiasoft
سه شنبه 29 خرداد 1397, 18:47 عصر
دوستان اینطور نوشتم
به نظرتون به مشکل نمیخورم ؟ در همه دستگاه ها به درستی کار خواهد کرد؟
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT _METHOD_SERVICE);
InputMethodSubtype ims = imm.getCurrentInputMethodSubtype();
String key_lang =ims.getLocale();
if (key_lang="en_US") {
}
else if (key_lang="fa"){
}
فکر میکنم جهت اطمینان باید مثلا اینطور بنویسیم(شاید دستگاه مربوطه کیبوردش فارسی نباشه و عربی استفاده کنه)
if ( key_lang.contains("en")) {
}
else if (key_lang.contains("fa") || key_lang.contains("ar")){
}
farhad_shiri_ex
چهارشنبه 30 خرداد 1397, 04:32 صبح
دوستان اینطور نوشتم
به نظرتون به مشکل نمیخورم ؟ در همه دستگاه ها به درستی کار خواهد کرد؟
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT _METHOD_SERVICE);
InputMethodSubtype ims = imm.getCurrentInputMethodSubtype();
String key_lang =ims.getLocale();
if (key_lang="en_US") {
}
else if (key_lang="fa"){
}
فکر میکنم جهت اطمینان باید مثلا اینطور بنویسیم(شاید دستگاه مربوطه کیبوردش فارسی نباشه و عربی استفاده کنه)
if ( key_lang.contains("en")) {
}
else if (key_lang.contains("fa") || key_lang.contains("ar")){
}
به نظر من که مشکلی نداره!
فقط getSystemService را از نظر null بودن چک کن خیلی وقتها شده که نتونسته تو اون لحظه سرویس بده برای همین برنامه کرش میکنه ! بهتره که کنترلش کنی در صورت لزوم یکبار دیگه سرویس بگیری.!
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.