Was bedeutet AdapterView Bedeutet in der OnitemClick () Methode? Was ist die Verwendung anderer Parameter in ihm?

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

  •  02-10-2019
  •  | 
  •  

Frage

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

Lösung

Die <?> zeigt eine generische. Lesen Sie mehr über sie hier .

Hier ist, was die Dokumentation sagt über die Parameter:

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

Eltern Die AdapterView wo der Klick passiert ist.

Die Ansicht im AdapterView, die angeklickt wurde (dies wird eine Ansicht vom Adapter zur Verfügung gestellt werden)

Position Die Position der Ansicht in dem Adapter.

id Die Zeilen-ID des Elements, das geklickt wurde.

Die AdapterView könnten ein ListView sein, GridView, Spinner usw. Die Fragezeichen in den spitzen Klammern zeigen an, dass es eine von ihnen sein könnte. Dies nennt man Generika in Java. Sie können Eltern im Code etwas auf die ganze Sicht zu tun. Zum Beispiel, wenn Sie eine ListView wurden mit Ihnen könnte die ganze ListView durch die folgende Codezeile auszublenden:

parent.setVisibility(View.GONE);

Die View bezieht sich auf ein bestimmtes Element innerhalb der AdapterView. In einer ListView ist es die Folge. So können Sie einen Verweis auf einen TextView innerhalb einer Reihe erhalten, indem in etwa so sagen:

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

Die Position ist die Position der Ansicht in den Eltern . Für eine ListView ist es die Zeilennummer. Die obere Reihe ist die Position 0, die zweite Zeile der Position 1 ist die dritte Zeile Position 2 usw. Beachten Sie, dass, wenn Ihre ListView hat eine Kopfansicht (wie wenn Sie ListView.addHeaderView(View) tun), dann würde die Kopfsicht Position 0 sein und die tatsächliche Zeilen würden ihre Nummerierung bei 1 beginnen.

Manchmal id ist die gleiche wie Position und manchmal ist es anders. Wenn Sie eine ArrayAdapter oder SimpleAdapter verwenden, dann sind sie gleich (außer im Fall, dass es eine Kopfansicht ist und dann nach dem anderen ausgeschaltet sind). Für eine CursorAdapter (und folglich ein SimpleCursorAdapter) die id gibt die Zeilennummer der Tabelle, das heißt, _id.

Hier sind ein paar andere gute Antworten zu diesem Thema:

Andere Tipps

? bedeutet, dass der Datentyp ist nicht bekannt, und es kann jede Art sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top