安卓——监听事件的三种写法

第一份代码包含了两种:1.匿名内部类3.实现接口

package com.example.lenovo.button_listener;

import android.app.Activity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;

public class MainActivity extends Activity implements OnClickListener {
    private Button loginButton;
    private ImageButton imgBt;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /*
               1.初始化当前所需控件,如何初始化
               findViewById---返回一个View的对象
               2.设置Button的监听器,通过监听器实现我们点击Button要操作的事情
         */
        loginButton = (Button)findViewById(R.id.button);
        imgBt =(ImageButton) findViewById(R.id.imageButton);
        /*
        1.监听事件通过第一种方式实现(匿名内部类)
         */

        loginButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                //在当前方法onClick方法中监听点击Button的动作
                System.out.println("我的Button被点击了");
            }
        });

        /*
        3.通过实现一个接口的方式实现监听事件
         */
        imgBt.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        Log.i("tag","第三种方式实现");
    }
}


第二份代码包含了1个方法(2.外部类实现)

package com.example.lenovo.outerclass_listener;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {
    private Button bt1;
    private Button bt2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        bt1 = (Button)findViewById(R.id.button);
        bt2 = (Button)findViewById((R.id.button2));
        /*
       2.点击事件外部类的写法和作用
        */
        bt1.setOnClickListener(new MyOnclick(){
            @Override
            public void onClick(View v) {
                //调用父类的onClick
                super.onClick(v);
                Toast.makeText(MainActivity.this,"bt1要执行的逻辑",Toast.LENGTH_LONG).show();

            }
        });
        bt2.setOnClickListener(new MyOnclick(){
            @Override
            public void onClick(View v) {
                super.onClick(v);
                Toast.makeText(MainActivity.this,"bt2要执行的逻辑",Toast.LENGTH_LONG).show();

            }
        });
    }
}


/*
OnClickListener是一个接口
 */
class MyOnclick implements View.OnClickListener{
    @Override
    public void onClick(View v){
    //让所有使用当前外部类的点击事件按钮都要做出一个动作,改变button本身的透明度
        v.setAlpha(0.5f);
        //v.setAlpha(1.0f);
    }
}

 
 

你可能感兴趣的:(慕课网安卓学习)