【问题标题】:How to get Value in Spinner and pass the Value to url for translate如何在 Spinner 中获取值并将值传递给 url 进行翻译
【发布时间】:2020-08-21 01:31:16
【问题描述】:

我正在 Android Studio 上开发一个翻译应用。我已经使用 Map 创建了我的语言键和值,我想将用户选择的键的值传递给 URL。例如,如果用户从 Spinner 中选择法语,则应将“fr”传递给 url 进行翻译。我怎样才能做到这一点?下面是我的 Java 活动 代码。我正在使用最新的 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) {

        }
    });

【问题讨论】:

    标签: android hashmap android-spinner key-value google-translate


    【解决方案1】:
    spinner.getItemAtPosition(position).toString(); //returns country Full-name
    

    这一行给出了您选择的项目,即国家名称,但不是它的缩写。获取缩写使用HashMap(使用Key获取Value)。例如:这里key是“France”,它的值是“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) {
    
        }
    });
    

    【讨论】:

    • 谢谢@Amit。这很好用。我使用 Countrycode 行,我的应用程序现在可以正常工作了
    【解决方案2】:

    在你的 onItemSelected 回调中

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

    countryCode 是你需要的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-24
      • 2023-03-22
      • 1970-01-01
      • 2015-01-27
      • 2021-09-14
      • 1970-01-01
      相关资源
      最近更新 更多