【发布时间】:2019-12-31 08:53:58
【问题描述】:
我希望微调器从以下 3 个国家/地区中进行选择,但我只能访问第二个和第三个选项。当我选择第一个选项时,微调器不起作用。
String[] countries = { "INDIA","AUSTRALIA","ENGLAND"};
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
if (!mSpinnerInitialized) {
mSpinnerInitialized = true;
return;
}
if(spinner.getSelectedItem().toString().equals("INDIA")){
LocaleManager.setNewLocale(LoginActivity.this, "en");
restart();
}else if(spinner.getSelectedItem().toString().equals("AUSTRALIA")){
LocaleManager.setNewLocale(LoginActivity.this, "si");
restart();
}else if(spinner.getSelectedItem().toString().equals("ENGLAND")){
LocaleManager.setNewLocale(LoginActivity.this, "ta");
restart();
}
Toast.makeText(LoginActivity.this, spinner.getSelectedItem().toString(), Toast.LENGTH_LONG).show();
}
微调器初始化
ArrayAdapter aa = new ArrayAdapter(this,R.layout.languagespinner,countries);
aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(aa);
应该可以访问名为 INDIA 的微调器文本,但不幸的是我无法访问。
编辑
这可能是因为 mSpinnerInitialized 但如果我删除它,活动将在无限循环中重新启动
【问题讨论】:
-
检查,如果 (spinner.getSelectedItem().toString.equals("INDIA") 为真,通过使用 System.out 或 toast 或日志。也许你错过了什么。你能告诉我们微调器的 xml 以及如何用值填充它?
-
使用 android 调试器并停止第一个 if 并检查您的值
-
当我按下微调器的第一项时,它不会进入 onselected 方法
-
如果条件有效,则第二个和第三个
-
你能告诉我们 Spinner 初始化吗?
标签: android android-spinner onselect