I want to capture the onClick event when the user selects a spinner value.
I've tried implementing OnClickListener
and using the following code:
@Override
public void onClick(final View view) {
if (view == countrySpinner) {
Toast.makeText(this, "Override OK!", 3);
}
}
And binding with:
countrySpinner.setOnClickListener(this);
This compiles, but I get a RuntimeException
advising me to use OnItemClickListener
rather than OnClickListener
for an AdapterView
.
How can I capture that onClick event?
Instead of setting the spinner's OnClickListener,try setting OnTouchListener and OnKeyListener.
spinner.setOnTouchListener(spinnerOnTouch);
spinner.setOnKeyListener(spinnerOnKey);
and the listeners:
private View.OnTouchListener spinnerOnTouch = new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
//Your code
}
return false;
}
};
private static View.OnKeyListener spinnerOnKey = new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
//your code
return true;
} else {
return false;
}
}
};