تشخیص زبان ورودی کیبورد
سلام و خسته نباشید.
من میخوام تو اپلیکیشن با توجه به زبان کیبورد کاربر خط های داخل edittex راست چین و چپ چین بشه.
کلی سرچ کردم و به نتیجه دلخواه نرسیدم یه کدی پیدا کردم که بهم میگه چه زبانی وارد شده، ولی فقط دفعه اول میگه و اگر زبان کیبورد تغییر کنه دیگه اطلاع نمید
private String getKeyboardLanguage() {
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
InputMethodSubtype inputMethodSubtype = inputMethodManager.getCurrentInputMethodSubtype();
Locale mLocale = new Locale(inputMethodSubtype.getLocale());
String localeDisplayName = mLocale.getDisplayLanguage();
return localeDisplayName;
}
اومدیم و تو رویداد setOnFocusChangeListener متد رو فراخونی کردم که هر کلمه جدیدی وارد میشه یه بار زبان چک بشه. ولی عمل نمیکنه و اگر در یه تکست ویو یا چیزه دیگه ای کلیک بشه و بعد دوباره رو همین ادیت تکست کلیک بشه عمل میکنه.
مشکل دومم هم اینه که نمیدونم چجوری خط ها رو راست چین یا چپ چین کنم درون ادیت تکست.
مثلا یه خط رو انگلیسی مینویسه و چپ چین باشه و یه اینتر میزنه و در خط بعد فارسی تایپ کنه که باید راست چین باشه.
حتی از Clone هم استفاده کردم ولی نشد و کرش کرد برنامه. ممنون میشم راهنماییم کنید.

برای قسمت اول سوالتون :
et1.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub }
@Override
public void afterTextChanged(Editable s) {
String str = getKeyboardLanguage();
} });
در مورد قسمت دوم احتمالا این لینک بدردتون میخوره لینک

راه حل برای راست چین و چپ چین شدن خودکار متن داخل ادیت تکست با توجه به تغیر زبان کیبورد.
داخل XML ادیت تکست مورد نظر خاصیت زیر رو قرار میدیم و تمام
android:layoutDirection="locale"
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .