Пара значений ключа Hashmap в языке nam и код - PullRequest
0 голосов
/ 30 апреля 2020

Я создаю приложение-переводчик, в котором пользователю нужно выбрать целевой язык, если предположим, что он выбирает французский из счетчика, тогда значение для FRENCH должно быть 'fr' , чтобы я мог передать это значение в URL , Я создал счетчик и назначил языки из адаптера массива, но я хочу использовать его краткую форму, например, для Французский значение должно быть fr Как мне этого достичь?

"French", "fr" "Arabi c", "ar" "Engli sh", "en"

мое приложение отображает список языков KEY и приложение зависает при нажатии здесь кнопки перевода мой код, что дальше

Spinner spinner = findViewById (R.id.spinner);

    Map<String, String> flanguages = new HashMap<String, String>();
    flanguages.put("Arabic", "ar");
    flanguages.put("English", "en");
    flanguages.put("French", "fr");
    flanguages.put("Hausa", "ha");
    flanguages.put("Igbo", "ig");
    flanguages.put("Yoruba", "yo");

    List<String> list = new ArrayList<String>(flanguages.keySet());


    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);
    arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(arrayAdapter);

1 Ответ

0 голосов
/ 01 мая 2020

Самый простой способ сделать это - создать класс LanguageItem.

class LanguageItem{
    String language;
    String isoCode;

    override String toString(){
      return language;
   }
}

Используйте этот класс, чтобы добавить свой язык и его ISO-код. Поместите его в ArrayList и покажите его в счетчике.

ArrayAdapter<LanguageItem> adapter = new ArrayAdpter(this, android.R.layout.simple_spinner_item, arraylist)

Теперь наItemSelected вы можете легко получить выбранный LanguageItem с позицией.

...