第一种 测试使用
直接xml添加,平时在自己的测试demo中使用比较多。
1、直接在xml里给按钮添加点击事件
android:onClick="btn_click"
2、按住option + enter 给btn_click快捷创建activity代码
public void btn_click(View view) { //sout System.out.println("哈哈哈,我被点击了"); Toast.makeText(this, "哈哈哈,我被点击了", Toast.LENGTH_SHORT).show(); }
第二种 按钮很多
当按钮有很多的时候,可以使用这一种
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn_click = findViewById(R.id.button);
btn_click.setOnClickListener(this);
}
@Override
public void onClick(View v) {
System.out.println("哈哈哈,我被点击了3");
Toast.makeText(MainActivity.this, "哈哈哈,我被点击了3", Toast.LENGTH_SHORT).show();
}
}
按钮很多的情况
btn_call.setOnClickListener(this); btn_call2.setOnClickListener(this); btn_call3.setOnClickListener(this); btn_call4.setOnClickListener(this); @Override public void onClick(View v) { switch (v.getId()) { case R.id.button1: callPhone(); break; case R.id.button2: callPhone(); break; case R.id.button3: callPhone(); break; case R.id.button4: System.out.println("哈哈哈"); break; default: break; } }
第三种 内部类(常用)
定义一个内部类去实现按钮的点击事件
注意:这种方式会覆盖掉第一种
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn_click = findViewById(R.id.button); btn_click.setOnClickListener(new MyClickListener()); } class MyClickListener implements View.OnClickListener { @Override public void onClick(View v) { System.out.println("哈哈哈,我被点击了2"); Toast.makeText(MainActivity.this, "哈哈哈,我被点击了2", Toast.LENGTH_SHORT).show(); } } }
第四种 匿名内部类(常用)
public class MainActivity extends AppCompatActivity implements View.OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn_click = findViewById(R.id.button); btn_click.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { System.out.println("哈哈哈,我被点击了4"); Toast.makeText(MainActivity.this, "哈哈哈,我被点击了4", Toast.LENGTH_SHORT).show(); } }); } }