Android学习-常见的UI控件 监听按钮的点击事件

onClick事件
1.Button和ImageButton都有一个onClick事件
通过自身的setOnClickListener(OnClickListener)方法添加点击事件
2.所有的控件都有一个onClick事件,不仅仅Button和ImageButton有
3.通过点击事件的监听可以实现点击按钮之后要发生什么动作

监听事件实现的几种写法
1.匿名内部类的实现
2.独立类的实现
3.实现接口的方式来实现

匿名内部类实现

public class FirstActivity extends AppCompatActivity {
    private static final String TAG = "FirstActivity";
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //将布局xml文件引入到activity中来
        setContentView(R.layout.first_layout);
        /*
        * 1.初始化当前所需要控件,如何初始化一个控件?
        * findViewById——返回的是个View对象
        * findViewById——通过R文件中的Id来找View
        *
        * 2.设置Button的监听器,通过监听器实现我们点击Button要操作的事情
        * */
        Button button = (Button) findViewById(R.id.button);

        /*
        * 1.监听事件通过第一种方式实现(匿名内部类)
        * */
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Toast.makeText(FirstActivity.this,"点击了button",Toast.LENGTH_SHORT).show();
            }
        });

    }

}

独立类的实现
这种方式可以使得所有继承了独立类的button被点击了以后,实现相同的操作,例如改变button的透明度,只要加一句super.onClick(view);即可

public class FirstActivity extends AppCompatActivity {
    private Button bt1;
    private Button bt2;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //将布局xml文件引入到activity中来
        setContentView(R.layout.first_layout);

        bt1 = (Button)findViewById(R.id.button);
        bt2 =(Button)findViewById(R.id.button2);

        //匿名内部类写法
       /* bt1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Toast.makeText(FirstActivity.this,"button1被点击了",Toast.LENGTH_SHORT).show();
            }
        });*/
        //点击事件外部类的写法和作用
        bt1.setOnClickListener(new MyOnclickListener(){
            public void onClick(View view){
                //调用父类的onClick
                super.onClick(view);
                Toast.makeText(FirstActivity.this,"button1被点击了",Toast.LENGTH_SHORT).show();
            }
        });
        bt2.setOnClickListener(new MyOnclickListener(){
            public void onClick(View view){
                //调用父类的onClick
                super.onClick(view);
                Toast.makeText(FirstActivity.this,"button2被点击了",Toast.LENGTH_SHORT).show();
            }
        });

    }

}
/*
*  OnclickListener是一个接口
* */
class MyOnclickListener implements View.OnClickListener{
    public void onClick(View view) {
        //让所有使用当前外部类的点击事件实现同一个同坐,改变button的透明度
        view.setAlpha(0.5f);
        System.out.println("button被点击了");
    }
}

实现接口的方式来实现

public class FirstActivity extends AppCompatActivity implements View.OnClickListener{

    private ImageButton ibtu;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //将布局xml文件引入到activity中来
        setContentView(R.layout.first_layout);

        ibtu = (ImageButton)findViewById(R.id.imageButton);
        ibtu.setOnClickListener(this);
    }

    public void onClick(View view) {
        Log.d("FirstActivity","onClick: ");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值