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