Я хочу определить, какой язык набирается пользователем в тексте редактирования, таком как хинди или английский, потому что я создаю приложение, такое как приложение SMS, и здесь я делаю текстовый счетчик, который работает в соответствии с типом языка edittext, который означает, что если язык является английским счетчиком Показывает 160 символов или язык, если счетчик хинди показывает 60 символов. Я могу сделать пользовательский счетчик с помощью textwatcher, но здесь я не могу определить язык редактирования текста.
Я пытался:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
InputMethodSubtype ims = imm.getCurrentInputMethodSubtype();
String localeString = ims.getLocale();
Locale locale = new Locale(localeString);
String currentLanguage = locale.getDisplayLanguage();
но это ничего не дает в Logcat.
и когда я использую это.
Log.d(TAG, "messageTYPE: " + Locale.getDefault().getDisplayLanguage());
Он показывает только английский каждый раз, когда я вхожу в хинди.
Что я хочу?
Если я могу определить тип языка, я могу создать собственный счетчик для редактирования текста.
OR
Можно ли редактировать текст, например, приложение для сообщений, которое автоматически определяет тип языка и устанавливает счетчик в соответствии с языком.
Пожалуйста, помогите мне, ребята, заранее спасибо.
UPDATE
if(s.length() < 160 || s.length() == 160){
if (s.length()/160 == 0) {
Log.d(TAG, "length160 " + s.length());
Log.d(TAG, "length160 " + (160-s.length()));
textViewCounter.setText((160 - s.length()) + "/" + "1");
messageCount =1;
Toast.makeText(SendingActivity.this, "length160: " + messageCount, Toast.LENGTH_SHORT).show();
}else if (s.length()/160 == 1){
textViewCounter.setText((160 - s.length()) + "/" + "1");
messageCount =1;
Toast.makeText(SendingActivity.this, "length1602: " + messageCount, Toast.LENGTH_SHORT).show();
}
}else if (s.length() > 160 && s.length() <= 305){
// textViewCounter.setText((305 - s.length()) + "/" + "2");
// messageCount = s.length()/160;
// Toast.makeText(SendingActivity.this, "above " + messageCount, Toast.LENGTH_SHORT).show();
if (s.length()/305 == 0) {
Log.d(TAG, "length305 " + s.length());
Log.d(TAG, "length305 " + (305-s.length()));
textViewCounter.setText((305 - s.length()) + "/" + "2");
messageCount = 2;
Toast.makeText(SendingActivity.this, "length305: " + messageCount, Toast.LENGTH_SHORT).show();
}else if (s.length()/305 == 1){
textViewCounter.setText((305 - s.length()) + "/" + "2");
messageCount = 2;
Toast.makeText(SendingActivity.this, "length3052: " + messageCount, Toast.LENGTH_SHORT).show();
}
}else if (s.length() > 305 && s.length() <= 459){
// textViewCounter.setText((305 - s.length()) + "/" + "2");
// messageCount = s.length()/160;
// Toast.makeText(SendingActivity.this, "above " + messageCount, Toast.LENGTH_SHORT).show();
if (s.length()/459 == 0) {
Log.d(TAG, "length459 " + s.length());
Log.d(TAG, "length459 " + (459-s.length()));
textViewCounter.setText((459 - s.length()) + "/" + "3");
messageCount = 3;
Toast.makeText(SendingActivity.this, "length459: " + messageCount, Toast.LENGTH_SHORT).show();
}else if (s.length()/305 == 1){
textViewCounter.setText((459 - s.length()) + "/" + "3");
messageCount = 3;
Toast.makeText(SendingActivity.this, "length4592: " + messageCount, Toast.LENGTH_SHORT).show();
}
}
Это пользовательский счетчик для подсчета слов и создания похожих сообщений.