歡迎使用CSDN-markdown編輯器

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

案例展示

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章