Cosa AdapterView Significa in OnitemClick () metodo? Qual è l'uso di altri parametri in esso?

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

  •  02-10-2019
  •  | 
  •  

Domanda

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

Soluzione

Il <?> indica un generico. Per saperne di più su di loro qui .

Ecco cosa dice il documentazione sui parametri:

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

  

genitori L'AdapterView dove il clic è successo.

     

Visualizza La vista all'interno della AdapterView che è stato cliccato (questo sarà un visualizzazione fornita dalla scheda)

     

posizione La posizione della vista l'adattatore.

     

id La riga id dell'elemento che è stato cliccato.

Il AdapterView potrebbe essere un ListView, GridView, Spinner, ecc Il punto interrogativo all'interno delle parentesi angolari indicano che potrebbe essere uno qualsiasi di loro. Questo si chiama generici in Java. È possibile utilizzare genitori nel codice per fare qualcosa per tutta la visione. Ad esempio, se si stesse utilizzando un ListView si potrebbe nascondere l'intera ListView dalla seguente riga di codice:

parent.setVisibility(View.GONE);

Il View si riferisce a un elemento specifico all'interno del AdapterView. In un ListView è la riga. Così, è possibile ottenere un riferimento a un TextView all'interno di una riga per dire qualcosa di simile:

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

Il posizione è la posizione del Visualizza nella genitori . Per un ListView, è il numero di riga. La riga superiore è la posizione 0, la seconda fila è la posizione 1, la terza fila è la posizione 2, ecc Si noti che se il vostro ListView ha una vista di testa (come se l'avete fatto ListView.addHeaderView(View)) poi la vista di testa sarebbe la posizione 0 e l'effettivo righe avrebbero iniziare la loro numerazione a 1.

A volte id è lo stesso di posizione e, a volte è diverso. Se si utilizza un ArrayAdapter o SimpleAdapter allora sono gli stessi (tranne nel caso in cui v'è una vista intestazione e poi sono off). Per un CursorAdapter (e quindi una SimpleCursorAdapter) il id restituisce l'id riga della tabella, che è, _id.

Qui ci sono alcune altre risposte buone su questo argomento:

Altri suggerimenti

L'? significa che il tipo di dati è sconosciuto e che può essere di qualsiasi tipo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top