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); } }