Button的点击事件可以有好多种你知道么?
第一种(匿名内部类):
private Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_day5);
btn1 = findViewById(R.id.btn1);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("flag","你点了我");
}
});
}
第二种(内部实现接口):
private Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_day5);
btn1 = findViewById(R.id.btn1);
btn1.setOnClickListener(new MyLinstenter());
}
class MyLinstenter implements View.OnClickListener {
@Override
public void onClick(View v) {
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("flag", "你点了我哦!");
}
});
}
}
第三种(外部类实现接口):
private Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_day5);
btn1 = findViewById(R.id.btn1);
btn1.setOnClickListener(new MyLinstenter(btn1));
}
}
class MyLinstenter implements View.OnClickListener {
private Button btn1;
public MyLinstenter(Button btn1) {
this.btn1 = btn1;
}
@Override
public void onClick(View v) {
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("flag", "你点了我哦!");
}
});
}
第四种(使用本类对象实现接口):
public class day5 extends AppCompatActivity implements View.OnClickListener{
private Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_day5);
btn1 = findViewById(R.id.btn1);
btn1.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Log.i("flag", "你点了我哦!");
}
}