Как получить значение в Spinner и передать значение URL-адресу для перевода - PullRequest
2 голосов
/ 06 мая 2020

Я разрабатываю приложение для перевода в Android Studio. Я создал свой языковой ключ и значение, используя Map , я хочу передать значение ключа, выбранного пользователем, в URL. например, если пользователь выбирает французский из Spinner, "fr" следует передать URL-адресу для перевода. как я могу этого добиться? ниже мой код Java Activity . Я использую последнюю версию Android Studio.

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

    final 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");
    flanguages.put("Japanese", "ja");

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


    final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);
    spinner.setPrompt("Select Language To Translate");
    arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(arrayAdapter);


    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

            spinner.getItemAtPosition(position).toString();

        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });

Ответы [ 2 ]

1 голос
/ 06 мая 2020

В обратном вызове onItemSelected

String key = list.get(position);
String countryCode = flanguages.get(key);

countryCode - это то, что вам нужно

0 голосов
/ 06 мая 2020
spinner.getItemAtPosition(position).toString(); //returns country Full-name

В этой строке отображается выбранный элемент, т.е. название страны, но не ее аббревиатура. Чтобы получить аббревиатуру для использования HashMap (используйте ключ для получения значения). Пример: Здесь ключ - «Франция», а его значение - «fr»

 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

        String key = spinner.getItemAtPosition(position).toString(); //ex: this gives France
       // String key = list.get(position); // or use can use this,//ex: this also gives France

        String countryCode = flanguages.get(key); //ex: this gives "fr"
        //api integration

    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {

    }
});
...