android 设置监听器

1、什么是监听器?

  1、监听器是个抽象类,它包含了一个事件触发时系统会去调用的函数
  2、在子类中,根据您项目的需要重写这个函数
  
  3、派生后的监听器需要绑定到按钮上,就像一个耳机可以发出声音,但您不去戴它,您是听不到它发出的声音的。一般的情况是这个按钮可能需要这个监听器,而另外一个按钮需要另外一个监听器,每个监听器各司其职,但功能相似时,也可以多个按钮共同绑定一个监听器。

  4、各种控件,都有常用的事件,如点击按钮,拖动一个滚动条,切换一个ListView的选项等等,他的绑定监听器的函数命名规则是setOn****Listener

2、为什么要这么设计?

  1、当用户(也可能系统)触发某个控件的某个事件后,往往要处理一些细节,但他们不具有通用性,例如您可能点击按钮后改变它的值,也可能希望点击按钮后弹出一个网页,或者点击按钮后关闭当前Activity。正由于结果可能太多样,设计者索性将实现完全留给Android开放者去实现

  2、监听器其实是一种回调:
  它不需要您去执行On****Listener,而是系统触发后自动会去调用它
  
3、设置监听器有两种方法
一种创建一个类实现OnClickListener接口。另一种通过接口实现的匿名内部类来创建对象。
设置监听器的步骤:
1.创建一个类实现了相应的监听接口,并实现接口中的方法,在方法中添加触发事件后要做的操作
2.创建实现了相应的监听接口类的对象
3.调用控件的setOn…Listener()方法,把创建的实现了相应的监听接口类的对象传给该控件。
第一种:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myButton = (Button)findViewById(R.id.mybutton);
        myButton.setText("链接另外一个app");
        //b:定义好了myButtonListener类后,创建myButtonListener类对象,并调用
        //myButton 的setOnClickListener方法把该对象传入给myButton的OnclickListener属性,
        //如果有点击事件,就会调用myButtonListener对象的onClick方法。
        myButtonListener mybuttonlistener =  new myButtonListener();
        myButton.setOnClickListener( mybuttonlistener );
    }

        //a:定义myButtonListener类,实现OnClickListener接口
       class myButtonListener implements OnClickListener
       {   public void onClick(View v){
               Intent intent = new Intent();
               intent.setClass(MainActivity.this, OtherActivity.class);
               MainActivity.this.startActivity(intent);

           }
       }

第二种方法

       myButton.setOnClickListener(new OnClickListener(){
          @Override
          public void onClick(View v)
          {
               Intent intent = new Intent();
               intent.setClass(MainActivity.this, OtherActivity.class);
               MainActivity.this.startActivity(intent);  
              // MainActivity.this.可省略
          }
           });
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值