1.Xml添加监听属性,这里添加的doClick。
1
1 public void doClick(View view) {2 switch (view.getId()) {3 case R.id.bt1:4 Toast.makeText(MainActivity.this, "第一种点击事件:Xml添加doClick", Toast.LENGTH_SHORT).show();5 break;6 7 }8 9 }
在Activity中添加doClick实现方法。Activity中实现的方法要和XML添加的属性名相同,不建议实际开发中使用。
2.匿名内部类方式实现。
1 Button bt2 = (Button) findViewById(R.id.bt2);2 bt2.setOnClickListener(new View.OnClickListener() {3 @Override4 public void onClick(View v) {5 Toast.makeText(MainActivity.this, "第二种点击事件:匿名内部类", Toast.LENGTH_SHORT).show();6 }7 });
3.自定义点击事件实现。
1 Button bt3 = (Button) findViewById(R.id.bt3);2 bt3.setOnClickListener(new MyListener()); 3 class MyListener implements View.OnClickListener {4 @Override5 public void onClick(View v) {6 Toast.makeText(MainActivity.this, "第三种方法:自定义点击事件", Toast.LENGTH_SHORT).show();7 }8 }
4.Activity继承View.OnClickListener,由Activity实现OnClick(View view)方法。
1 public class MainActivity extends AppCompatActivity implements View.OnClickListener { 2 @Override 3 protected void onCreate(Bundle savedInstanceState) { 4 super.onCreate(savedInstanceState); 5 setContentView(R.layout.activity_main); 6 Button bt4=(Button)findViewById(R.id.bt4); 7 bt4.setOnClickListener(this); 8 } 9 10 @Override11 public void onClick(View v) {12 switch (v.getId()) {13 case R.id.bt4:14 Toast.makeText(MainActivity.this,15 "第四种点击事件:Activity继承View.OnClickListener,由Activity实现OnClick(View view)方法",16 Toast.LENGTH_SHORT).show();17 }18 }19 }
备注:Button数量不多的情况下推荐使用第二种,匿名内部类的方式实现;反之则推荐使用第四种,Activity继承View.OnClickListener实现。