在我的Android应用程序中,我有2个微调器,例如一个用于选择水果,另一个用于选择花。
当我选择水果时,要求是这样的,那么花必须重置,反之亦然。简而言之,只有一种可以选择水果或花卉。
然后我在选择后有API调用...
对于重置我使用spinner.setSelection(0)方法在调用中创建某种冗余,因为setSelection方法自动调用onItemSelectedListener。
这是我的代码: -
spnFruit.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
if(flower) {
return;
}
Log.e("TYPE", "Fruit");
fruit = true;
spnFlower.setSelection(0);
fruit = false;
// API call
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
spnFlower.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
if(fruit) {
return;
}
Log.e("TYPE", "Flower");
flower = true;
spnFruit.setSelection(0);
flower = false;
// API call
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
水果和花是布尔值。
请告诉我的哥们我哪里错了?
答案 0 :(得分:1)
我也面临同样的问题。我通过致电public void setSelection (int position, boolean animate)
来克服这一点spinner.setAdapter(adapter);
spinner.setSelection(0, false);
spinner.setOnItemSelectedListener(callback);
设置为false后,它不会调用OnItemSelectedListener
回调。