內部類形式監聽器類為當前類的內部類外部類形式監聽器類為當前類的外部類Activity本身作為事件監聽器類Activity實現監聽器接口匿名內部類使用匿名內部類創建事件監聽器
內部類形式
public class EventQs extends Activity{ @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); // 獲取應用程序中的bn按鈕 Button bn = (Button) findViewById(R.id.bn); // 為按鈕綁定事件監聽器。 bn.setOnClickListener(new MyClickListener()); // ① } // 定義一個單擊事件的監聽器 class MyClickListener implements View.OnClickListener{ // 實現監聽器類必須實現的方法,該方法將會作為事件處理器 @Override public void onClick(View v){ //... } }}外部類形式
public class MyButtonListener implements OnClickListener { //... @Override public void onClick(View source) { //... }}button.setOnClickListener(new MyButtonListener (this));Activity本身作為事件監聽器類
public class ActivityListener extends Activity implements OnClickListener{ EditText show; Button bn; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); show = (EditText) findViewById(R.id.show); bn = (Button) findViewById(R.id.bn); // 直接使用Activity作為事件監聽器 bn.setOnClickListener(this); } // 實現事件處理方法 @Override public void onClick(View v) { //... }}匿名內部類
public class AnonymousListener extends Activity{ EditText show; Button bn; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); show = (EditText) findViewById(R.id.show); bn = (Button) findViewById(R.id.bn); // 直接使用Activity作為事件監聽器 bn.setOnClickListener(new OnClickListener() { // 實現事件處理方法 @Override public void onClick(View v) { //... } }); }}內部類:復用方便;自由訪問外部類的界面元素外部類:不推薦,除非共享Activity:不推薦匿名內部類:簡單事件。目前應用廣泛
新聞熱點
疑難解答