匿名内部类的方法
- 在xml文件中初始化组件并设置id属性,以便在java文件中可以通过findViewById来获取组件。
- 初始化当前所需要控件:private Button xxxx,通过findViewById方法(参数为R中的id),返回一个View的对象,系统自动强转成组件对象–所有组件都是view类的子类。
- 设置组件的监听器,通过监听器实现我们点击组件需要操作的事情:组件对象在setOnClickListener方法中new一个OnClickListener类,并在OnClickListener类的实现中写出需要实现的代码。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "单击了按钮1", Toast.LENGTH_SHORT).show();
}
});
}
通过onClick属性实现
- 在xml文件中初始化组件并设置id属性,以便在java文件中可以通过findViewById来获取组件
- 在activity的java文件中编写一个包含View类型参数的方法。方法是自己定义设置的。

- 在xml布局文件中,将组件的android:onClick属性指定为步骤2中的方法名。例:

通过OnClickListener接口方式实现事件监听
- 在xml文件中初始化组件 将当前Activity实现OnClickListener接口。
public class MainActivity extends Activity implements View.OnClickListener
- 重写OnClickListener接口的onClick();方法。
- 在onCreate方法中调用,参数直接写this,即Mainactivity的引用,如:
public class MainActivity extends Activity implements View.OnClickListener{
private Button btn;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=findViewById(r.Id.btn1);
btn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Log.i("tag", "第三种方式:通过OnClickListener接口实现事件监听");
}
}