La fixation d'un spinner onClickListener() dans Android

Je vais essayer d'obtenir un onClickListener à feu sur un Spinner, mais j'obtiens l'erreur suivante:

Java.lang.RuntimeException est "Ne pas appeler setOnClickListener pour un AdapterView. Vous voulez probablement setOnItemClickListener au lieu de cela,"

Je suis sûr que je veux l'appeler onClickListener et PAS onItemClickListener. J'ai trouvé une question posée par quelqu'un d'autre sur un Débordement de Pile Est-il possible d'utiliser setOnClickListener avec un Android Spinner?

La réponse y est:

Vous devrez définir le Clic
le port d'écoute sur la vision sous-jacente
(normalement un TextView avec l'id:
android.R.id.texte1) de la touche de navigation. Pour
faire:

Créer un Spinner Dans le
constructeur (avec attributs) créer
le spinner par la fourniture de la mise en page
android.R.de mise en page.simple_spinner_item
Faire un findViewById(android.R.id.texte1)
pour obtenir le TextView Maintenant définir l'
onClickListener pour le TextView

J'ai essayé la réponse noté, mais il ne semble pas fonctionner. Je reçois un pointeur null pour le TextView après je ne l'findViewById().

C'est ce que je fais:

Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.layoutspinner,dataArray);
spinner.setAdapter(adapter);
TextView SpinnerText = (TextView)findViewById(R.id.spinnerText);
if (SpinnerText == null) {
System.out.println("Not found");
}
else {
SpinnerText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
//Do something
}
});
}

Fichier layoutspinner.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/spinnerText"
android:singleLine ="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="6pt"
android:gravity="right"/>

Ce que je fais mal?

Je suis nouveau sur Pile Overflow, je n'ai pas trouvé de publier un supplément de question à l'autre thread (ou un commentaire depuis que je suis à peu rep) j'ai donc commencé une nouvelle question.

Par recomendation j'ai essayé ceci:

int a = spinnerMes.getCount();
int b = spinnerMes.getChildCount();
System.out.println("Count = " + a);
System.out.println("ChildCount = " + b);
for (int i = 0; i < b; i++) {
View v = spinnerMes.getChildAt(i);
if (v == null) {
System.out.println("View not found");
}
else {
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Click code
}
});
}
}

Mais LogCat n'est pas donné des résultats prometteurs.

10-14 16:09:08.127: INFO/System.out(3116): Count = 7
10-14 16:09:08.127: INFO/System.out(3116): ChildCount = 0

J'ai testé sur des API pour les niveaux 7 et 8 avec les mêmes résultats.

InformationsquelleAutor blindstuff | 2010-10-13