我有一个意图启动与页面上的一些spinners的活动。我刚刚设置了我的微调器的ItemSelected监听器,遵循this指南。问题是,每个Spinner中的第一个项目基本上都是“请选择”,因此它不是一个空白框:所以我的ItemSelected Listener检测到请选择是在微调器中,似乎假定它被选中而不是加载默认。理想情况下,我希望听众只在发生实际选择时才能检测到。忽略默认选择的最佳方式是什么?Spinner's Listener检测到默认/显示选项为ItemSelected? (已解决)
下面是相关代码:
ageSpinner = (Spinner) findViewById(R.id.ageSpinner);
ageAdapter = ArrayAdapter.createFromResource
(this, R.array.ageArray, android.R.layout.simple_spinner_item);
ageAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
ageSpinner.setAdapter(ageAdapter);
ageSpinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
public class MyOnItemSelectedListener implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent,
View view, int pos, long id) {
Toast.makeText(parent.getContext(), "The planet is " +
parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();
}
public void onNothingSelected(AdapterView parent) {
// Do nothing.
}
}
编辑〜解决方案
public class MyOnItemSelectedListener implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent,
View view, int pos, long id) {
if (pos != 0) {
//this if makes sure it ignores 0, which is
//Please Select in the drop down
Toast.makeText(parent.getContext(), parent.getTag().toString() +
parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();
}
}
public void onNothingSelected(AdapterView parent) {
// Do nothing.
}
}
编辑我的主要职务,以显示我的解决方案 - 感谢答案! (排除0) – Davek804