public class MainActivity extends Activity { /* * 第一种方式:匿名内部类 */ private Button wordButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /* * 1.初始化当前所需的一个控件 * findViewById --返回的是一个View的对象 * * 2.设置Button的监听器,经过监听器实现点击Button所要操做的事情 */ wordButton = (Button)findViewById(R.id.button1); //之因此用(Button)是由于findViewById返回的是一个View的对象,"View是全部控件的一个父类" wordButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // 在当前onClick方法中监听Button的动做 System.out.println("个人按钮被点击了"); } }); } }
运行结果>>监听到点击事件后执行类中的方法(即控制台输出“个人按钮被点击了”)。java
/* *第二种方式:独立类 */ public class MainActivity extends Activity { //Button对象 private Button wordButton; private ImageButton imageButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); wordButton = (Button)findViewById(R.id.button1); wordButton.setOnClickListener(new MyClick() { //调用父类的OnClick @Override public void onClick(View v){ super.onClick(v); Toast.makeText(MainActivity.this,"wordbutoon", 1).show(); } }); imageButton = (ImageButton)findViewById(R.id.imageButton1); imageButton.setOnClickListener(new MyClick() { //调用父类的OnClick @Override public void onClick(View v){ super.onClick(v); Toast.makeText(MainActivity.this,"imagebutoon", 1).show(); } }); } } /* * 独立类 */ class MyClick implements OnClickListener{ @Override public void onClick(View v) { // 让全部试用当前外部类的点击事件的按钮都要作出一个动做(改变透明度) v.setAlpha(0.5f); } } //[实际应用]:需求让多个按钮实现同一种动做的时候,可用此方法,简化代码。
运行结果>>监听到按钮点击事件后实现独立类中的方法(即点击按钮,透明度发生改变)。ide
/* * 第三种方式:接口 */ public class MainActivity extends Activity implements OnClickListener{ private Button wordButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); wordButton = (Button)findViewById(R.id.button1); wordButton.setOnClickListener(this); } @Override public void onClick(View arg0) { Log.i("tog","第三种方式"); //Log用来打印日志 } }
运行结果>>监听到按钮点击事件后实现方法(即打印日志)。this