按钮四种点击事件写法
- [1]通过内部类来实现按钮点击事件
- [2]通过匿名内部类去实现
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this, "我被点击了", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this, NextActivity.class);
startActivity(intent);
}
});
- [3]当页面上有多个按钮 让当前类实现OnClickListener.通过switch语句 通过id 来判断具体点击的是哪个按钮
public class NextActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_next);
Button btn1 = findViewById(R.id.btn1);
Button btn2 = findViewById(R.id.btn2);
Button btn3 = findViewById(R.id.btn3);
Button btn4 = findViewById(R.id.btn4);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
btn4.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn1:
Toast.makeText(this, "1", Toast.LENGTH_SHORT).show();
break;
case R.id.btn2:
Toast.makeText(this, "2", Toast.LENGTH_SHORT).show();
break;
case R.id.btn3:
Toast.makeText(this, "3", Toast.LENGTH_SHORT).show();
break;
case R.id.btn4:
Toast.makeText(this, "4", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(NextActivity.this, ThirdActivity.class);
startActivity(intent);
break;
}
}
}
- [4]按钮第四种点击事件写法
- [4.1]在按钮上声明一个onClick属性
<Button
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="Click"
android:text="天道酬勤" />
- [4.2]在mainActivity写一个方法 要求方法名和属性名一样 并且接收一个参数 参数类型View.
public void Click(View view) {
Toast.makeText(this, "恐怖墙", Toast.LENGTH_SHORT).show();
}
- 原理就是我们前面讲的反射.
- 实际开发中:使用匿名内部类或者第四种写法