¿Hay alguna manera de usar setOnClickListener con un Android Spinner?

Java.lang.RuntimeException es "No llame a setOnClickListener para un AdapterView. Probablemente desee setOnItemClickListener", pero eso no es correcto. Estoy usando setOnItemClickListener para hacer algunas cosas basadas en la nueva selección, pero también necesito hacer algunas cosas antes de que el usuario cambie la selección. Específicamente, estoy recopilando datos para cada selección que debe guardarse en un archivo antes de pasar a otra selección, ya que la otra selección está asociada con un conjunto diferente de datos. ¿Hay alguna manera de usar setOnClickListener con un Android Spinner?

spinner.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // Do some stuff before the user changes the selection
        ...

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent,
            View view, int pos, long id) {
            // Do some stuff based onItemSelected
            ...

Respuestas a la pregunta(2)

Su respuesta a la pregunta