我的代码是:
spin2.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View arg1,
int position, long id) {
Toast.makeText(getApplicationContext(), "item selected",
Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}
);
我在spinner中实现了setSelectedItem:
spin2.setSelection(new Date().getMonth());
我希望在选择项目时显示toast。它不应自动显示。
答案 0 :(得分:2)
此处Toast
不会自动显示。
您正在使用spin2.setSelection(new Date().getMonth());
以编程方式选择项目。
所以每当这一行执行OnItemSelectedListener
时都会被调用。
要摆脱这种情况,你应该使用一些标志(布尔变量)。
类似这样的事情
//set flag to false before selection
spin2.setSelection(new Date().getMonth());
spin2.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View arg1,
int position, long id) {
if(flag is true){
Toast.makeText(getApplicationContext(), "item selected",
Toast.LENGTH_SHORT).show();
}else{
//then set flag to true here
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}
);