內(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)
疑難解答