转载请注明出处:https://blog.csdn.net/weixin_46224390/article/details/106165867
总结一下Button 点击事件onclick实现的四种方式;
方式一:匿名内部类
findViewById(R.id.button_1).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "匿名内部类", Toast.LENGTH_SHORT).show();
}
});
方式二:创建一个实现OnClickListener接口的内部类
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button_1).setOnClickListener(new Buttondemo());
}
public class Buttondemo implements OnClickListener {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "创建一个实现OnClickListener接口的内部类", Toast.LENGTH_SHORT).show();
}
}
这种方式还有一个变种:
创建系统Button.OnClickListener类的一个实例,然后将这个实例作为参数传给监听器setOnClickListener
Button.OnClickListener buttonListener = new Button.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.Button01:
textView.setText("Button按钮");
break;
}
}
};
button.setOnClickListener(buttonListener);
方式三:Activity实现OnClickListener接口
public class MainActivity extends AppCompatActivity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button_1).setOnClickListener(this);
findViewById(R.id.button_2).setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button_1:
Toast.makeText(MainActivity.this, "Activity实现OnClickListener接口", Toast.LENGTH_SHORT).show();
break;
case R.id.button_2:
Toast.makeText(MainActivity.this, "Activity实现OnClickListener接口", Toast.LENGTH_SHORT).show();
break;
}
}