我有以下代码示例在Android中执行写入文件:
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();
}
}
我的问题是,View对象(作为参数传递)做了什么,为什么有必要?我理解视图只是指Android中的UI对象,但我无法找到有关View对象在这里做什么的任何解释。
答案 0 :(得分:0)
您现在知道,当您为视图定义onClickListener
属性时,android会为您实现android:onClick="yourMethod"
。
即使是Button
,您也无需将TextView
置于任何视图中,并记住所有这些都是View
的子类。
因此,Android为您实施onClickListener
。您必须传递View
作为参数。
对于您问题的Write
方法,您对所点击的Button
不感兴趣,因此未使用View
。但是,如果有人希望在用户点击时更改Button's
文字,请将View
参数投放到Button
然后再使用。请查看下面的示例,了解具有属性的Button
:
android:onClick="changeText"
将调用方法changeText
,View
参数是针对此案例Button
传递的视图,因此该方法将为:
public void changeText(View view) {
Button btn =(Button) view; //See how I have retrieved the Button by simply casting!
btn.setText("I am clicked");
}