gpt4 book ai didi

android - 忽略创建时触发的 OnItemSelectedListener

转载 作者:可可西里 更新时间:2023-11-01 19:07:37 27 4
gpt4 key购买 nike

我正在创建一个 spinner 并向其添加了一个 OnItemSelectedListener。但是我注意到它在创建时触发。现在我想知道是否有办法忽略/丢弃它。

我知道我可以使用 boolean 值,但这有点“脏”。

最佳答案

这是我的解决方案。

我需要忽略第一个项目选择事件,因为 Route Grade Spinner 和 Route Checkbox 之间存在依赖关系。

我的所有控件都是根据之前对 Activity 的访问设置的。

// Used to count the number of times the onItemSelected gets fired
private int mGradeSelectionCount = 0;

private void attachHandlers() {
OnItemSelectedListener gradeRangeSelectionMadeListener;
gradeRangeSelectionMadeListener = new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapter, View view, int position, long id) {
// If the counter is 0 then we can assume that it is android firing the event
if (mGradeSelectionCount++ < 1) {
return;
}
if (mCmbGradeFrom.getSelectedItemPosition() == 0) {
// Uncheck the Route checkbox
mChkTypeRoute.setChecked(false);
} else {
// Check the Route checkbox
mChkTypeRoute.setChecked(true);
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// Dont care, keep the same values as before

}
};
mCmbGradeFrom.setOnItemSelectedListener(gradeRangeSelectionMadeListener);
mChkTypeRoute.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (!isChecked) {
mCmbGradeFrom.setSelection(0);
mCmbGradeTo.setSelection(0);
}
}
});
}

关于android - 忽略创建时触发的 OnItemSelectedListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2373948/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com