按钮四种点击事件写法

按钮四种点击事件写法

  • [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();
    }
 
  • 原理就是我们前面讲的反射. 
  • 实际开发中:使用匿名内部类或者第四种写法

猜你喜欢

转载自www.cnblogs.com/nangongyibin/p/10198587.html