java.lang.RuntimeException: setOnItemClickListener 不能与微调器一起使用
java.lang.RuntimeException: setOnItemClickListener cannot be used with a spinner
mSpinner.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (id == 2) {
showToast(getString(R.string.added_alert));
checkBoxAlarm.setEnabled(true);
} else {
checkBoxAlarm.setEnabled(false);
checkBoxAlarm.setChecked(false);
}
if (id == 3) {
showToast(getString(R.string.notify));
checkboxnotify.setEnabled(true);
} else {
checkboxnotify.setEnabled(false);
checkboxnotify.setChecked(false);
}
}
public void onNothingSelected(AdapterView parent) {
}
});
当您想要比较所选项目在微调器中的位置时,您必须使用 position
代替 id
。
mSpinner.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (position == 2) {
showToast(getString(R.string.added_alert));
checkBoxAlarm.setEnabled(true);
} else {
checkBoxAlarm.setEnabled(false);
checkBoxAlarm.setChecked(false);
}
if (position == 3) {
showToast(getString(R.string.notify));
checkboxnotify.setEnabled(true);
} else {
checkboxnotify.setEnabled(false);
checkboxnotify.setChecked(false);
}
}
public void onNothingSelected(AdapterView parent) {
}
});
报错中可以看到:setOnItemClickListener不能使用
使用
setOnItemSelectedListener
而不是
setOnItemClickListener
首先你应该改变这个。然后你可以使用 position.
你应该使用 OnItemSelectedListener
https://developer.android.com/guide/topics/ui/controls/spinner#SelectListener
mSpinner.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (id == 2) {
showToast(getString(R.string.added_alert));
checkBoxAlarm.setEnabled(true);
} else {
checkBoxAlarm.setEnabled(false);
checkBoxAlarm.setChecked(false);
}
if (id == 3) {
showToast(getString(R.string.notify));
checkboxnotify.setEnabled(true);
} else {
checkboxnotify.setEnabled(false);
checkboxnotify.setChecked(false);
}
}
public void onNothingSelected(AdapterView parent) {
}
});
当您想要比较所选项目在微调器中的位置时,您必须使用 position
代替 id
。
mSpinner.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (position == 2) {
showToast(getString(R.string.added_alert));
checkBoxAlarm.setEnabled(true);
} else {
checkBoxAlarm.setEnabled(false);
checkBoxAlarm.setChecked(false);
}
if (position == 3) {
showToast(getString(R.string.notify));
checkboxnotify.setEnabled(true);
} else {
checkboxnotify.setEnabled(false);
checkboxnotify.setChecked(false);
}
}
public void onNothingSelected(AdapterView parent) {
}
});
报错中可以看到:setOnItemClickListener不能使用
使用
setOnItemSelectedListener
而不是
setOnItemClickListener
首先你应该改变这个。然后你可以使用 position.
你应该使用 OnItemSelectedListener
https://developer.android.com/guide/topics/ui/controls/spinner#SelectListener