安卓学习之路4之插件Button和ImageButton的属性以及监听

(此文为本人android学习之路的笔记,属于基础;如果有错误,欢迎指正)

1.Button和ImageButton

(1)共有的特性:都可以作为一个按钮产生点击事件
(2)不同点:Button有text的属性;ImageButton有src属性
(3)产生明显的点击效果

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


3.监听事件实现的三种写法(要记得导入包)
(1)匿名内部类的实现
1.初始化当前所需要的控件。如何初始化一个控件
 findViewById---返回的是一个View的对象

  private Button loginButton;//在MainActivity.java中作为成员变量定义
  
  loginButton = (Button)findViewById(R.id.button1);// button1是要监听按钮的id
2.设置Button的监听器,通过监听器实现我们点击Button要操作的事情

loginButton.setOnClickListener(new OnClickListener(){

public void onClick(view v){
//在当前onClick方法中监听点击Button的动作
System.out.println("我的Button被点击了");
}
));
(2)外部类的实现(当所有的按钮被点击都会运行同样的代码时,就可以考虑用外部类来实现监听;不过该块知识点比较模糊)
1.初始化控件
private Button bt1;
private Button bt2;
bt1=(Button)findViewById(R.id.button1);
        bt2=(Button)findViewById(R.id.button2);
2.定义外部类
   class MyOnClickListener implements OnClickListener{


@Override
public void onClick(View v) {
//Log.i("tag"," 父类的onclick事件");
//当所有使用当前外部类的点击事件的按钮都要做出一个动作,改变button本身的透明
v.setAlpha(0.5f);
}
   
    }
3.外部类的运用
        bt1.setOnClickListener(new MyOnClickListener(){
        @Override
        public void onClick(View v) {
        //调用父类的onClick方法,这里的父类指的是外部类MyOnClickListener
//父类这个点有点难理解;这里表示不仅子类对象的OnClick会运行,父类的Onclick也会运行
        super.onClick(v);
        Toast.makeText(MainActivity.this, "bt1要执行的逻辑", 1).show();
        }
        });
        bt2.setOnClickListener(new MyOnClickListener(){
        @Override
        public void onClick(View v) {
        super.onClick(v);
        Toast.makeText(MainActivity.this, "bt2要执行的逻辑", 1).show();
        }
        });
(3)实现接口的方式来实现
1.要先继承OnClickListener
public class MainActivity extends Activity implements OnClickListener {
2.再定义一个方法
public void onClick(View v) {
Log.i("tag", "第三种方式实现");
}
3.初始化控件
private ImageButton imgBt;
imgBt = (ImageButton) findViewById(R.id.imageButton1);
4.控件与监听器结合
imgBt.setOnClickListener(this);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值