您的位置:首页 > 移动开发 > Android开发

Android Button的学习使用

2016-09-19 23:18 232 查看

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;
}
});


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: