1. 程式人生 > >實現監聽事件的三種方法。

實現監聽事件的三種方法。

package com.yuan.luotechnically.monitor;
import android.app.Activity;
import android.content.DialogInterface;
import android.media.Image;
import android.support.annotation.IdRes;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import 
android.support.v7.widget.ButtonBarLayout; import android.support.v7.widget.ContentFrameLayout; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageButton; import android.widget.Toast; public class MainActivity extends AppCompatActivity implements
View.OnClickListener { private Button loginButton; private Button btn2; private ImageButton Imge; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /** * 1、初始化一個控制元件(要先宣告),如何初始化一個控制元件?
* findViewById--返回的是一個View物件,View物件是所有控制元件的父類 * * 2、設定控制元件的監聽器,通過監聽器實現我們點選控制元件的事件 */ /** * 1、監聽事件的第一種實現方式(匿名監聽) */ loginButton = (Button) findViewById(R.id.Button1 ) ; loginButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //在這個onClick方法中實現Button1的匿名監聽 // System.out.print("我的按鈕被點選了"); System.out.println("我的按鈕被點選了") ; } }); /** * 2、監聽事件的第二種實現方式(獨立類實現) * btn是匿名監聽,做對比 */ btn2 = (Button )findViewById(R.id.button2 ) ; btn2.setOnClickListener(new MyOnClickListener() { @Override public void onClick(View view) { //呼叫父類的OnClick事件 super.onClick(view); Toast .makeText(MainActivity.this , "bt2要執行的邏輯",1).show() ; } } ) ; /** * 3、監聽事件的第三中實現方式(介面訪問) */ Imge = (ImageButton ) findViewById(R.id.imgBtn); Imge.setOnClickListener(this) ; } @Override public void onClick(View view) { Toast.makeText(MainActivity.this, "介面方式監聽", Toast.LENGTH_SHORT).show(); } } /** * OnClickListener是一個介面,不能通過繼承的方式 */ class MyOnClickListener implements Button.OnClickListener { @Override public void onClick(View view) { // Log.i("tag","父類的OnClick事件"); view.setAlpha(0.5f); // view.setAlpha(1f); } };