package com.example.hellowidgets;import com.example.hellowidgets.R.color;import com.example.othor.Mylistenner;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.MotionEvent;import android.view.View;import android.view.View.OnClickListener;import android.view.View.OnTouchListener;import android.widget.Button;import android.widget.Toast;public class ButtonActivity extends Activity implements OnClickListener{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_button);final Button btn=(Button) findViewById(R.id.button_event);//匿名内部类实现事件监听与处理btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {btn.setText("你小子还真敢,看我不给你点颜色看看");btn.setTextColor(getResources().getColor(color.red));btn.setBackgroundColor(getResources().getColor(color.blue));//参数arg0代表发生事件的对象,事件源,在本例中,他其实就是那个btn,只不过进行了伪装,换了名字//Button eventSource=(Button)arg0;//eventSource.setText("你小子还真敢,看我不给你点颜色看看");//eventSource.setTextColor(getResources().getColor(color.red));//eventSource.setBackgroundColor(getResources().getColor(color.blue));}});final Button imgBtn=(Button) findViewById(R.id.button_img); imgBtn.setOnTouchListener(new OnTouchListener() {@Overridepublic boolean onTouch(View arg0, MotionEvent arg1) {if(arg1.getAction()==MotionEvent.ACTION_DOWN){Toast.makeText(getApplicationContext(), "我是ontouch事件", Toast.LENGTH_SHORT).show();}return false;}});//测试true与false的区别imgBtn.setOnClickListener(new Mylistenner());//内部类实现监听Button btnEvent=(Button) findViewById(R.id.event_innerClass);//注册监听事件btnEvent.setOnClickListener(new InnerClass());//注册本类监听Button btnEventThis=(Button) findViewById(R.id.event_thisClass);btnEventThis.setOnClickListener(this);//外部类监听,并处理final Button btnOthor=(Button) findViewById(R.id.event_othorClass);btnOthor.setOnClickListener(new Mylistenner());//调用另一个按钮的点击事件Button btnPerform=(Button) findViewById(R.id.event_perform);btnPerform.setOnClickListener(new OnClickListener() {@Override//模拟点击public void onClick(View arg0) {btnOthor.performClick();}});}private class InnerClass implements OnClickListener{public InnerClass(){}@Overridepublic void onClick(View arg0) {Toast.makeText(getApplicationContext(), "我是内部类", Toast.LENGTH_SHORT).show();}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.button, menu);return true;}//本类处理方法@Overridepublic void onClick(View arg0) {Toast.makeText(getApplicationContext(), "我是本类呀\n我自己监听自己了", Toast.LENGTH_SHORT).show();}//配置单击处理事件方法,要遵守规则public void clickHandler(View v){Toast.makeText(getApplicationContext(), "我是配置的方法", Toast.LENGTH_SHORT).show();}}