一.内部类:
public class ActivityStudy01 extends Activity{
private Button button
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_study_01);
button = (Button)findViewById(R.id.button);
button.setOnClickListener(new ButtonListener());
}
class ButtonListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO 这里放单击后的业务处理
}
}
}
二.匿名内部类
public class ActivityStudy01 extends Activity{
private Button button
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_study_01);
button = (Button)findViewById(R.id.button);
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO 这里放单击后的业务处理
}
})
}
}
三.Activity实现OnClickListener接口
public class ActivityStudy01 extends Activity implements OnClickListener{
private Button button
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_study_01);
button = (Button)findViewById(R.id.button);
}
@Override
public void onClick(View v) {
// TODO 这里放单击后的业务处理
}
}
四.在XML文件中“显示指定按钮的onClick属性
XML文件:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="Button1" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="Button2" />
Acitivity文件:
public class TestButtonActivity extends Activity {
Button btn1, btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_button);
}
// 注意 这里没有 @Override 标签
public void onClick(View v) {
// TODO 这里放单击后的业务处理
}
}
注意:第四种写法监听TextView的时候,需要设置clickable=”true”才可以实现,默认情况下为false
第四种写法整个代码中都不用声明button就可以实现button的单击事件。
以上就是四种实现按钮单击事件的方法。
粗略总结一下,就是按钮少的时候用匿名内部类会比较快,比如写demo测试的时候或者登陆界面之类的。
按钮多的情况我还是选择第三种方法,方便。
关于第四种方法,我感觉最方便,但看了很多代码还是觉得写法不够大众化。