內(nèi)部類形式監(jiān)聽器類為當(dāng)前類的內(nèi)部類外部類形式監(jiān)聽器類為當(dāng)前類的外部類Activity本身作為事件監(jiān)聽器類Activity實(shí)現(xiàn)監(jiān)聽器接口匿名內(nèi)部類使用匿名內(nèi)部類創(chuàng)建事件監(jiān)聽器
內(nèi)部類形式
public class EventQs extends Activity{ @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); // 獲取應(yīng)用程序中的bn按鈕 Button bn = (Button) findViewById(R.id.bn); // 為按鈕綁定事件監(jiān)聽器。 bn.setOnClickListener(new MyClickListener()); // ① } // 定義一個(gè)單擊事件的監(jiān)聽器 class MyClickListener implements View.OnClickListener{ // 實(shí)現(xiàn)監(jiān)聽器類必須實(shí)現(xiàn)的方法,該方法將會(huì)作為事件處理器 @Override public void onClick(View v){ //... } }}外部類形式
public class MyButtonListener implements OnClickListener { //... @Override public void onClick(View source) { //... }}button.setOnClickListener(new MyButtonListener (this));Activity本身作為事件監(jiān)聽器類
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作為事件監(jiān)聽器 bn.setOnClickListener(this); } // 實(shí)現(xiàn)事件處理方法 @Override public void onClick(View v) { //... }}匿名內(nèi)部類
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作為事件監(jiān)聽器 bn.setOnClickListener(new OnClickListener() { // 實(shí)現(xiàn)事件處理方法 @Override public void onClick(View v) { //... } }); }}內(nèi)部類:復(fù)用方便;自由訪問外部類的界面元素外部類:不推薦,除非共享Activity:不推薦匿名內(nèi)部類:簡單事件。目前應(yīng)用廣泛
新聞熱點(diǎn)
疑難解答