Existenz des Parameters (View view)

9

Ich versuche, eine App für Android zu erstellen, und folge diesem Tutorial Ссылка

Es gibt einen Teil

%Vor%

Dann folgte ich diesem Tutorial und alles funktionierte, bis ich den Parameter View view

lösche

meine Frage ist nur, warum jedes Mal, wenn ich es entferne, so ist die Funktion einfach:

%Vor%

und ich starte die App, erzwungenes Schließen.

Könnte mich jemand aufklären? Danke

    
willsantoso 20.12.2012, 11:18
quelle

3 Antworten

5

Die Methode (in der Regel onClick(View view) genannt) verwendet einen Parameter (die View, der sie zugeordnet ist). Weitere Informationen zur Funktion finden Sie Ссылка . Wenn Sie den Parameter nicht verwenden, würden Sie nicht erwarten, dass es funktioniert, oder?

    
David M 20.12.2012, 11:25
quelle
11

Wenn Sie sich die XML-Datei genau ansehen, sehen Sie auf der Schaltfläche das folgende Attribut:

%Vor%

Dieses Attribut bedeutet, dass beim Klicken auf die Schaltfläche die Nachricht

angezeigt wird %Vor%

wird aufgerufen. Dies liegt daran, dass die Methode onClick in der Schnittstelle OnClickListener einen Parameter vom Typ View erfordert. Wenn Sie den Parameter entfernen, versucht Android weiterhin, die Methode sendMessage(View view) aufzurufen, aber diese Methode existiert nicht mehr, daher erhalten Sie eine Zwangsschließung.

Parameter view ist die aktuelle Ansicht (Schaltfläche in Ihrem Fall), auf die geklickt wurde. Damit können Sie mehrere Schaltflächen zuweisen, um dieselbe Methode aufzurufen, und innerhalb der Methode prüfen, welche Schaltfläche angeklickt wurde.

Wenn Sie die Methode ohne die Parameter haben möchten, sollten Sie sie im Code anstelle des XML zuweisen. Ändern Sie Ihr XML zu

%Vor%

(Beachten Sie, dass android:onClick Attribut jetzt entfernt wird und android:id hinzugefügt wird.) Dann würden Sie in Ihrer Aktivität in onCreate method die folgende Zeile hinzufügen:

%Vor%

Wie Sie sehen können, ist dies ein bisschen mehr Code zum Schreiben, aber es bietet Ihnen mehr Flexibilität, wenn Sie es brauchen.

    
Aleks G 20.12.2012 11:27
quelle
1

Wenn Sie diese Art von Sache in Ihr xml einfügen:

%Vor%

Das Android-Framework fügt einen OnClickListener auf Ihrer Schaltfläche hinzu. Dieser "automatisch" generierte OnclickListener wird versuchen, eine Methode namens "sendMessage" mit einem einzigen Argument vom Typ View aufzurufen.

Wenn diese Methode nicht existiert, stürzt sie einfach ab.

    
ben75 20.12.2012 11:28
quelle

Tags und Links