如何在Spinner中获取价值,并将该价值传递给url进行翻译。

问题描述 投票:1回答:2

我正在开发一个 翻译应用 在Android Studio上。我使用 地图例如,如果用户在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
2个回答
0
投票
spinner.getItemAtPosition(position).toString(); //returns country Full-name

这一行给出了你所选择的项目,即国家名称,但不是它的缩写。要获得缩写,需要使用HashMap(使用键来获得值).例如:这里的键是 "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) {

    }
});

1
投票

在您的onItemSelected回调中。

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

您需要的是国家代码

© www.soinside.com 2019 - 2024. All rights reserved.