我创建了一个显示世界上所有国家/地区名称的微调器。现在,我希望传递像阿富汗的AFG,意大利的ITA等的值,以便在从微调器中选择项目时存储为字符串。我很困惑如何做到这一点。因为,我在旋转器中分配国家的全名,并希望在点击Spinner时传递与国家名称不同的数据(就像我在选择时所说的意大利ITA)。
答案 0 :(得分:2)
创建您的Object pojo,如
class Country{
String name;
String code;
//getter and setters
}
并设置国家/地区列表
List<Country> list;
到适配器
显示国家/地区名称并访问国家/地区代码
spinner.getSelectedItem().getCode();
答案 1 :(得分:1)
这可以做两件事,一件是想要在代码中使用但又不想在选择其他名称中看到,另一件是如果你想在微调器中显示名称,也可以在下面的代码检查中使用。< / p>
创建一个公共类来存储国家/地区名称和国家/地区代码,如下所示
CommonClass.java
//I am taking it as CommonClass you can change it.
public static final String[] strCountryNames = {"India","Italy","Afghanistan","United States of America"};
public static final String[] strCountryCodes = {"IND","ITA","AFG","USA"};
现在,对于微调器setAdapter,请使用CommonClass.strCountryNames,
在那里你想使用代码的地方使用CommonClass.strCountryCode,
假设您想获取印度代码,那么您可以将其检查为
CommonClass.strCountryCode[spinner.selectyedPosition];
答案 2 :(得分:0)
您可以获取所选国家/地区并拨打str.substring(0, 3).toUpperCase()
答案 3 :(得分:0)
如果你想要前三个名字
String countryName = "China"
String shortName = countryName.substring(3).toUpperCase();
答案 4 :(得分:0)
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
int pos = spinner.getSelectedItemPosition();
String mysourcestring= yourarraylistname[+pos];
String substr=mysourcestring.substring(0,3).toUpperCase();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
现在要传递的值将在substr中。 对不起,如有错误, 希望这有帮助