我有一个微调器,可以使用标准的OnItemSelectedListener来提供一组选项:
s.setAdapter(adapter);
s.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1,
int selectedPosition, long arg3) {
if (selectedPosition == 0) {
// do stuff
} else {
// other stuff
}
}
public void onNothingSelected(AdapterView<?> arg0) {
}
});
但是,我有一个新的要求,当用户点击Spinner使用它时,相应的Button被禁用。我已将以下OnFocusChangeListener添加到Spinner:
s.setFocusable(true);
s.setFocusableInTouchMode(true);
s.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
distanceButton.setEnabled(false);
} else {
distanceButton.setEnabled(true);
}
}
});
这有效,并禁用按钮。但是,微调器现在需要两次单击以显示选项,当没有OnFocusChangeListener时,它只需要一次单击。有没有办法将两个操作合并为一个Listener?
...谢谢
答案 0 :(得分:2)
尝试在if子句之后调用super.onFocusChange(v,hasFocus)。
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
distanceButton.setEnabled(false);
} else {
distanceButton.setEnabled(true);
}
super.onFocusChange(v, hasFocus);
}