Button控件检测点击事件的四种方式

Button检测点击共有四种方法(常用第三种)

1:外部监听类

MainActivity.java
Button btnSecond=(Button)findViewById(R.id.btnSecond);
btnSecond.setOnClickListener(new ExternalListenerClass(this));


ExternalListenerClass.java
public class ExternalListenerClass implements View.OnClickListener {

    private Context context;

    public ExternalListenerClass(Context context)  //获取context参数
    {
        this.context=context;
    }
    @Override
    public void onClick(View v) {
        System.out.println("另建外部监听类实现监听!");
        Toast.makeText(context, "另建外部监听类实现监听!", Toast.LENGTH_SHORT).show();
    }
}

2.内部监听类

Button btnThird=(Button)findViewById(R.id.btnThird);
btnThird.setOnClickListener(new InnerListenerClass());


public class InnerListenerClass implements View.OnClickListener{
    @Override
    public void onClick(View v) {
        System.out.println("测试内部定义监听器类的Button监听器!");
        Toast.makeText(MainActivity.this, "测试内部定义监听器类的Button监听器!", Toast.LENGTH_SHORT).show();
    }
}

3.匿名内部类

Button btnForth=(Button)findViewById(R.id.btnForth);
btnForth.setOnClickListener(anonymousListener);


//匿名内部类方式建立的监听器
Button.OnClickListener anonymousListener=new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        System.out.println("匿名内部类方式定义的的Button监听器!");
        Toast.makeText(MainActivity.this, "匿名内部类方式定义的的Button监听器!", Toast.LENGTH_SHORT).show();
    }
};

4.利用Activity类实现监听接口

public class MainActivity extends Activity implements View.OnClickListener{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layoutbutton);


        //设立由Activity实现OnClickListener接口的共同的监听器,多次设置会覆盖以前的值
        btnFirst.setOnClickListener(this);
        btnSecond.setOnClickListener(this);
        btnThird.setOnClickListener(this);
        btnForth.setOnClickListener(this);
    }


    //利用Activity类实现监听接口
    @Override
    public void onClick(View v) {
        switch (v.getId()) {//区分哪个按钮的事件
            case R.id.btnFirst:
                System.out.println("First Button");
                Toast.makeText(MainActivity.this, "First Button", Toast.LENGTH_SHORT).show();
                break;
            case R.id.btnSecond:
                System.out.println("Second Button");
                Toast.makeText(MainActivity.this, "Second Button", Toast.LENGTH_SHORT).show();
                break;
            case R.id.btnThird:
                System.out.println("Third Button");
                Toast.makeText(MainActivity.this, "Third Button", Toast.LENGTH_SHORT).show();
                break;
            case R.id.btnForth:
                System.out.println("Forth Button");
                Toast.makeText(MainActivity.this, "Forth Button", Toast.LENGTH_SHORT).show();
                break;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_38367681/article/details/83116396