Android Button的学习使用

Android Button的学习使用


Button的主要作用

Button是Android中非常常用且重要的控件,我们可以为Buttoo你添加事件来对程序进行逻辑判断和处理。

使用方法

在布局文件中添加如下代码

<Button
        android:id="@+id/login_btn"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_centerInParent="true"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:background="@drawable/btn_bg_selector"
        android:text="LOG IN"
        android:textColor="#ffffff"
        android:textStyle="bold" />

效果图如下
效果图

可以通过添加selector文件为button添加更加炫酷的效果,比如按下的时候改变字体或底层颜色,也可以添加shape为button修改边框,添加圆角等效果。

Button添加事件

Button添加事件有很多种方法,目前我所知道的有4种,分别是获取到组件后,添加事件,在布局中就指定添加事件的方法,使用Xutils框架。

一、获取组件并添加事件

首先获取到组件

login_btn = (Button) findViewById(R.id.login_btn);

设置事件监听,用到了setOnClickListener方法,传入的是一个OnClickListener接口,所以可以使用匿名内部类的方式。

 login_btn.setOnClickListener(new OnClickListener() {
         @Override
         public void onClick(View v) {
         Toast.makeText(getApplicationContext(), "点击了按钮",
         Toast.LENGTH_SHORT).show();
         }
     });

这种方法适合当某一个按钮控件只有它自己做这个逻辑处理,和其他的控件使用的方式不一样时。如果有很多Button时就需要使用下面的方式。

Button添加事件监听的第二种方法

首先还是获取组件

login_btn = (Button) findViewById(R.id.login_btn);

添加事件

login_btn.setOnClickListener(this);

这个方法需要类实现OnclickListener接口,然后实现接口中的抽象方法

public void onClick(View v) {
        switch (v.getId()) {
        case R.id.login_btn:
            Toast.makeText(getApplicationContext(),
                    "点击了按钮", Toast.LENGTH_SHORT).show();
            break;
        }
    }

Button添加事件监听的第三种方法

在布局文件中就指定点击事件的触发方法,在布局文件中的Button里添加

android:onClick="login"

在java代码中写点击的方法,方法名必须和onClick中的一样,并且格式是public void 方法名(View view)。代码如下:

public void login(View v) {
        String userName = un_et.getText().toString().trim();
        String password = pwd_et.getText().toString().trim();
        if("".equals(userName) || "".equals(password)){
            Toast.makeText(getApplicationContext(),
                    "用户名或密码不能为空", Toast.LENGTH_SHORT).show();
        }
        Toast.makeText(getApplicationContext(),
                "username:"+userName+"\npassword:"+password,
                Toast.LENGTH_SHORT).show();
    }

这个方法和第一种方法作用基本类似,并且不需要再找到控件,比第一种方便些,但是这个方法的弊端是不能添加长按事件

Button添加事件监听的第四种方法

使用框架能够很快的提高开发效率,使用Xutils时,首先导入jar包,然后在类中引用Xutils的ViewUtils。

ViewUtils.inject(this);

之后就能够使用注解的方式寻找控件,或给控件添加方法

寻找控件的方法如下:

@ViewInject(R.id.un_et)
private EditText user_et;

@ViewInject(R.id.pwd_et)
private EditText pwd_et;

给控件添加点击事件

@OnClick(R.id.login_btn)
    public void login(View v) {
        String username = user_et.getText().toString().trim();
        String password = pwd_et.getText().toString().trim();
        if ("".equals(username) || "".equals(password)) {
            showToast("用户名或密码不能为空");
        } else {
            showToast("UserName:" + username + "\nPassword:" + password);
        }
    }

Button的长按事件

长按事件也是Android中非常常用的,长按事件调用的是setOnLongClickListener

login_btn.setOnLongClickListener(new OnLongClickListener() {
     @Override
     public boolean onLongClick(View v) {
         Toast.makeText(getApplicationContext(), "长按事件触发了。。。",
         Toast.LENGTH_SHORT).show();
         //返回为true事件就不会继续往下传递,即是不会再触发点击事件
         return true;
     }
});

案例展示

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值