2017-12-18 1 views
1

Ich habe folgendes Codebeispiel, das eine Schreib in Android Datei ausführt:Passing View-Objekt als Parameter in einer Write-Methode

public void Write(View v) { 
    String contents = txt1.getText().toString(); 
    try { 
     FileOutputStream f = openFileOutput(filename, Context.MODE_PRIVATE); 
     PrintWriter w = new PrintWriter(f); 
     w.println(contents); 
     w.close(); 
     f.close(); 
    } catch (Exception e) { 
     e.printStackTrace();  
    } 
} 

meine Frage ist, was macht das View-Objekt (als Parameter übergibt) zu tun, und warum ist es notwendig? Ich verstehe, dass eine Ansicht sich einfach auf ein UI-Objekt in Android bezieht, aber ich finde keine Erklärung dafür, was das View-Objekt hier tut.

+0

Bedeutet das, es gibt einen Code 'onClick' Attribut in einer Ihrer' Ansichten' in 'XML' kann eine Schaltfläche sein ?? – Xenolion

+0

Ja, es gibt eine Schaltfläche, die diese Methode als Handler zugewiesen ist – czolbe

+0

Ich habe Ihre Frage beantwortet! @czolbe. – Xenolion

Antwort

0

Sie wissen jetzt, dass Android nur die onClickListener für Sie implementiert, wenn Sie das Attribut android:onClick="yourMethod" zu Ihren Ansichten definieren.

Es ist nicht notwendig, dass es eine Button ist, die Sie zu jeder Ansicht sogar setzen können TextView erinnern Sie sich an alle diese Unterklassen von View.

So für Android onClickListener für Sie zu implementieren. Sie müssen einen View als Parameter übergeben.

Für Ihre Frage Write Methode waren Sie nicht interessiert an der Button, die angeklickt wurde, so dass die View wurde nicht verwendet. Aber nehmen Sie ein Beispiel für jemanden, der einen Button's Text ändern möchte, wenn der Benutzer klickt, also muss der View Parameter zu einem Button gegossen und dann verwendet werden. Markieren Sie dieses Beispiel unten für eine Button mit einem Attribut:

android:onClick="changeText" 

Verfahren changeText aufgerufen wird, und der View Parameter ist eine Ansicht, die für diesen Fall die Button so das Verfahren wird übergeben wurde:

public void changeText(View view) { 
    Button btn =(Button) view; //See how I have retrieved the Button by simply casting! 
    btn.setText("I am clicked"); 
} 
+0

Danke! Das hat mir geholfen. Um mein Verständnis zu testen, bezieht sich die Sicht hier auf das Objekt ui, das als Quelle des Ereignisses fungiert (onclick), das die Schreibmethode auslöst. Und durch einen Verweis auf die Schaltfläche oder die Ansicht, die die Schreibmethode auslöst, haben wir die Option – czolbe

+0

Sie sind herzlich willkommen, Danke und ** Happy Coding! **. – Xenolion

Verwandte Themen