方法一:在XML檔案中指定 單擊事件函數
<Button
android:id="@+id/button1"
android:layout_width="120dip"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"
android:layout_marginTop="59dp"
android:onClick="onclicklistener"
android:text="@string/mybuttonstr" />
然後在代碼中實現這個函數。注意,函數需要public 要不會異常。
public void onclicklistener(View tager)
{
TextView textView1 =(TextView)findViewById(R.id.textView1);
textView1.setText("西安.王磊");
}
方法二:
在activity 的onCreate 中 找到button,然後給它賦上事件監聽器。這個方式非常普遍。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button but=(Button)this.findViewById(id.button1);
but.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Log.v("MyTag", "onClick");
}
});
}
方法三:
這個方法其實是方法二的變種。就是提前定義一個OnClickListener 的handler,然後可以將這個activity中所有的button多使用這個handler,通過判斷不同id來進行不同的邏輯。這個方式適合比較多的button的情況使用。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
View.OnClickListener handler=new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()){
case id.button1:
Log.v("MyTag", "Button1 OnClick");
break;
case id.button2:
Log.v("MyTag", "Button2 OnClick");
break;
}
}
};
Button btn1=(Button)this.findViewById(id.button1);
Button btn2=(Button)this.findViewById(id.button2);
btn1.setOnClickListener(handler);
btn2.setOnClickListener(handler);
}