我正在开发一个 翻译应用 在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) {
}
});
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) {
}
});
在您的onItemSelected回调中。
String key = list.get(position);
String countryCode = flanguages.get(key);
您需要的是国家代码