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

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

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

1 <Button
2         android:id="@+id/bt1"
3         android:layout_width="wrap_content"
4         android:layout_height="wrap_content"
5         android:onClick="doClick"
6         android:text="XML添加doClick"
7         android:layout_above="@+id/bt2"
8         android:layout_marginBottom="47dp"
9        />
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              @Override
4              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 @Override 5 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 @Override
11     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实现。