外部类监听事件的点击事件

来源:互联网 发布:网络安全教育讲话稿 编辑:程序博客网 时间:2024/05/01 14:29

MainActivity.java代码

package com.example.hello;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class MainActivity extends ActionBarActivity {    private Button bt1;        private Button bt2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        /*         * 1.初始化当前所需要的控件,如何初始化一个控件         * findViewById---返回一个View的对象         * findViewById是如何查找一个对应View的id         * 2.设置一个Button的监听器,通过监听器实现我们点击Button要操作的事情         */        bt1=(Button)findViewById(R.id.button1);        bt2=(Button)findViewById(R.id.button2);             /*         *1.监听事件通过第一种方式实现(匿名内部类)          */        //设置点击事件//      bt1.setOnClickListener(new OnClickListener(){////          @Override//          public void onClick(View v) {//              // TODO Auto-generated method stub//              System.out.println("我的按钮被点击了");//          }       //      });        /*         * 2.点击事件外部类的写法和作用         *          */        bt1.setOnClickListener(new MyOnClickListener(){        @Override        public void onClick(View v) {            //调用父类的onClick方法            super.onClick(v);            /*             * Toast:是一个类,主要管理消息的提示.             * makeText(),是Toast的一个方法,用来显示信息,分别有三个参数.             */            Toast.makeText(MainActivity.this, "bt1要执行的逻辑", 1).show();            }               });         bt2.setOnClickListener(new MyOnClickListener(){        @Override        public void onClick(View v) {            //调用父类的onClick方法            super.onClick(v);            Toast.makeText(MainActivity.this, "bt2要执行的逻辑", 1).show();            }               });             }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        // Handle action bar item clicks here. The action bar will        // automatically handle clicks on the Home/Up button, so long        // as you specify a parent activity in AndroidManifest.xml.        int id = item.getItemId();        if (id == R.id.action_settings) {            return true;        }        return super.onOptionsItemSelected(item);    }}/* *OnCickListener是一个接口 */class MyOnClickListener implements OnClickListener{    public void onClick(View v){        /*log.i是打印输出日志的,这个函数在项目中的主要作用就是,         * 你能够查看你想要知道的一些参数数据,而且可以帮你找到程序的运行出错的位置。         * i指的是info,信息的意思,和log.w()代表warn,log.e()代表error,         * log.v()代表verbose,log.d()代表debug一样,都是用来输出日志,只是标记不一样         * 一般调程序习惯用log.e(),因为这在logcat中会显示成红色         */        //让所有使用当前外部类的点击事件的按钮都要做出一个动作(如同一个动画效果),改变button本身的透明度     v.setAlpha(0.5f);    }}
0 1
原创粉丝点击