public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button loginButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /** * 1.通过findViewById---返回的时一个View的对象,因为是返回类型是View,所以需要强制转换 * 2.R指的是R.java,该文件包含了所以id控件 **/ loginButton = (Button) findViewById(R.id.button1); /* *1.监听事件通过第一种方式实现(匿名内部类) */// loginButton.setOnClickListener(new View.OnClickListener() {// @Override// public void onClick(View v) {// System.out.println("点击方法--匿名内部类");// }// }); /* *2.监听事件通过第二种方式实现(外部类) */// loginButton.setOnClickListener(new MyOnclickListener(){// @Override// public void onClick(View v) {// super.onClick(v);// Toast.makeText(MainActivity.this,"外部类--改变透明度",Toast.LENGTH_SHORT).show();// }// }); // loginButton.setOnClickListener(listener); /* * 3.监听事件通过第二种方式实现(接口) * * 为什么这里用this就可以了呢,因为我们在上面实现了OnClickListener接口,我们只需要编辑生成的onClick方法即可 * */ loginButton.setOnClickListener(this); } @Override public void onClick(View v) { Toast.makeText(MainActivity.this,"点击方法--实现接口",Toast.LENGTH_SHORT).show(); } //另外一种写法// View.OnClickListener listener = new View.OnClickListener() {// @Override// public void onClick(View v) {// Toast.makeText(MainActivity.this,"外部类--改变透明度",Toast.LENGTH_SHORT).show();// }// };}/** OnClickListener是一个接口,所以只能用implements 而不能用extens继承*/class MyOnclickListener implements View.OnClickListener{ @Override public void onClick(View v) { v.setAlpha(0.5f); }}