Qu'est-ce que AdapterView Signifie dans le OnitemClick () Méthode? Quelle est l'utilisation d'autres paramètres en elle?

StackOverflow https://stackoverflow.com/questions/3184672

  •  02-10-2019
  •  | 
  •  

Question

gridview.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            Toast.makeText(HelloGridView.this, "" + position, Toast.LENGTH_SHORT).show();
        }
    });
Était-ce utile?

La solution

Le <?> indique un générique. En savoir plus sur les .

Voici ce que la documentation dit au sujet des paramètres:

onItemClick(AdapterView<?> parent, View view, int position, long id)

  

parent Le AdapterView où le clic est arrivé.

     

vue Le point de vue dans le AdapterView qui a été cliqué (ce sera une vue fournie par l'adaptateur)

     

Position La position de la vue dans l'adaptateur.

     

id L'identifiant de ligne de l'élément qui a été cliqué.

Le AdapterView pourrait être un ListView, GridView, Spinner, etc. Le point d'interrogation à l'intérieur des crochets indique qu'il pourrait être l'un d'eux. Ceci est appelé génériques en Java. Vous pouvez utiliser parent dans le code pour faire quelque chose à la vue entière. Par exemple, si vous utilisez un ListView vous pouvez cacher l'ensemble ListView par la ligne de code suivante:

parent.setVisibility(View.GONE);

Le View fait référence à un élément spécifique dans le AdapterView. Dans un ListView il est la ligne. Ainsi, vous pouvez obtenir une référence à un TextView dans une rangée en disant quelque chose comme ceci:

TextView myTextView = (TextView) view.findViewById(R.id.textView1);
String text = myTextView.getText().toString();

Position est la position de la vue dans le parent . Pour une ListView, il est le numéro de ligne. La ligne supérieure est la position 0, la deuxième ligne est la position 1, la troisième ligne est la position 2, etc. Notez que si votre ListView a une vue d'en-tête (comme si vous l'avez ListView.addHeaderView(View)), la vue d'en-tête serait la position 0 et le réel les lignes commenceraient leur numérotation à 1.

Parfois id est le même que Position et il est parfois différent. Si vous utilisez un ArrayAdapter ou SimpleAdapter ils sont alors les mêmes (sauf dans le cas où il y a une vue d'en-tête, puis ils sont désactivés par un). Pour un CursorAdapter (et par conséquent une SimpleCursorAdapter) id renvoie l'ID de ligne de la table, qui est, _id.

Voici quelques autres bonnes réponses sur ce sujet:

Autres conseils

? signifie que le type de données est inconnu et il peut être tout type.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top