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

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值