Мне нужно реализовать AutoComplete TextView для всех поддерживаемых locales устройств Android. Я пробовал следующее:

 public class AutoCompleteView extends Activity{

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_dropdown_item_1line, Locales);
    AutoCompleteTextView textView = (AutoCompleteTextView)
            findViewById(R.id.locale_list);
    textView.setAdapter(adapter);
}
static Locale[] locales = Locale.getAvailableLocales();
private static final String[] Locales = ;
}

Я могу получить локали с помощью Locale[]. В последней строке кода, как разобрать это на String[] Locales .. Пожалуйста, помогите мне друзья ....

5
Avadhani Y 2 Апр 2013 в 12:34
Он возвращает String как объект Java. Мне нужен строковый массив всех локалей ...
 – 
Avadhani Y
2 Апр 2013 в 12:40
Зачем вам нужен последний String []?
 – 
StarPinkER
2 Апр 2013 в 12:45
Не можете понять код выше ?? Я использую AutoCompleteTextView для отображения списка локалей ...
 – 
Avadhani Y
2 Апр 2013 в 12:54
Вы хотите, чтобы названия страны или страны были такими [af, af_NA, af_ZA, am, am_ET, ar, ar_AE, ar_BH, ar_DZ, ar_EG, ar_IQ, ar_JO, ar_KW .. или отображаемые названия или язык страны
 – 
Pragnani
2 Апр 2013 в 12:56
Locale.toString () вернет String, поэтому я думаю, вы можете использовать цикл для его итеративного вызова. Но ваш «финал» на String [] немного усложняет задачу.
 – 
StarPinkER
2 Апр 2013 в 13:03

1 ответ

Лучший ответ

Извините за поздний ответ

Попробуй это

  Locale[] locales = Locale.getAvailableLocales();
            ArrayList<String> localcountries=new ArrayList<String>();
            for(Locale l:locales)
            {
                localcountries.add(l.getDisplayLanguage().toString());
            }
    String[] languages=(String[]) localcountries.toArray(new String[localcountries.size()]);

Я надеюсь, что это поможет вам.

8
Pragnani 2 Апр 2013 в 13:39
Благодарю. У меня это сработало. Еще один вопрос: могу ли я динамически изменять мягкую клавиатуру в зависимости от выбранной локали? Например, я выбрал французский язык, используя приведенный выше код в AutoComplete TextView. После выбора французского, могу ли я динамически изменить мягкую клавиатуру на французский для следующего поля EditText ??? Может чего добиться ??? Помогите, пожалуйста...
 – 
Avadhani Y
2 Апр 2013 в 14:00
Нет способа AFAIK, проверьте это для справки stackoverflow.com/questions/6545734/…
 – 
Pragnani
2 Апр 2013 в 14:09
Как бы то ни было, вы можете изменить языковой стандарт, чтобы получить ресурсы на определенном языке, проверьте это stackoverflow.com/questions/2900023/…
 – 
Pragnani
2 Апр 2013 в 14:12
Да, я уже нашел это, но вместо того, чтобы менять вручную, мы не можем делать это динамически ??
 – 
Avadhani Y
2 Апр 2013 в 14:13
В том же ответе CommonsGuy (Марк Мерфи) ответил, что это невозможно.
 – 
Pragnani
2 Апр 2013 в 14:22