1.匿名内部类
- 匿名内部类方法使用广泛,大致分为三步
- findViewById(R.id.button)获取id;
- setOnClickListener绑定监听器;
- 重写相应响应函数;
- 代码
(findViewById(R.id.button)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "点点点!", Toast.LENGTH_SHORT).show()
}
})
2.外部类(比较少见)
- 所有的响应都要执行相同得操作,使用外部类定义相同的执行操作的过程。
- findViewById(R.id.button)获取id;
- 定义自己的接口类,使其继承接口类OnClickListener;
- 重写相应响应函数;
- setOnClickListener绑定监听器;
- 代码
(findViewById(R.id.button)).setOnClickListener(new MyOnClickListener());
class MyOnClickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
System.out.println("外部类实现监听");
}
}
3.接口方式
- 大致过程如下:
- 所在类继承接口类OnClickListener;
- 重写相应响应函数;
- findViewById(R.id.button)获取id;
- setOnClickListener绑定监听器;
- 代码
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private Button button1;
private ImageButton imageButton1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
(findViewById(R.id.button)).setOnClickListener(MainActivity.this);
}
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "接口实现监听事件", Toast.LENGTH_SHORT).show();
}
}