Android中Button四种点击事件实现方式

时间:2023-03-08 21:08:21

1.Xml添加监听属性,这里添加的doClick。

 <Button
android:id="@+id/bt1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="doClick"
android:text="XML添加doClick"
android:layout_above="@+id/bt2"
android:layout_marginBottom="47dp"
/>
 public void doClick(View view) {
switch (view.getId()) {
case R.id.bt1:
Toast.makeText(MainActivity.this, "第一种点击事件:Xml添加doClick", Toast.LENGTH_SHORT).show();
break; } }

在Activity中添加doClick实现方法。Activity中实现的方法要和XML添加的属性名相同,不建议实际开发中使用。

2.匿名内部类方式实现。

        Button bt2 = (Button) findViewById(R.id.bt2);
bt2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "第二种点击事件:匿名内部类", Toast.LENGTH_SHORT).show();
}
});

3.自定义点击事件实现。

  Button bt3 = (Button) findViewById(R.id.bt3);
bt3.setOnClickListener(new MyListener());
class MyListener implements View.OnClickListener {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "第三种方法:自定义点击事件", Toast.LENGTH_SHORT).show();
}
}

4.Activity继承View.OnClickListener,由Activity实现OnClick(View view)方法。

 public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bt4=(Button)findViewById(R.id.bt4);
bt4.setOnClickListener(this);
} @Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt4:
Toast.makeText(MainActivity.this,
"第四种点击事件:Activity继承View.OnClickListener,由Activity实现OnClick(View view)方法",
Toast.LENGTH_SHORT).show();
}
}
}
备注:Button数量不多的情况下推荐使用第二种,匿名内部类的方式实现;反之则推荐使用第四种,Activity继承View.OnClickListener实现。