對於button這個控件相信大家都很熟悉了吧!對於Qt的話有QPushButton,QToolButton,但是很清楚,對於Button我們需要他的單擊事件,然後通過它的單擊事件做我們想做的事情,因此我們很多時候都是對於它的單擊事件做出相對於的處理來滿足我們的需求!當然對於它的美觀我們也是很有必要對它負責的!
對於Qt我們通過QPushButton單擊的時候會發出個Clicked()的信號,然後通過連接信號和槽來做處理,而在android中我們沒有信號,但是我們有監聽器來監聽用戶的對於button控件的動作,然後做出相對應得處理!
ok!廢話不多說,直接上代碼!
這裏用倆種方法來處理Button的單擊的處理函數
1.監聽器
首先在xml文件中定義button的id
<Button
android:id="@+id/login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登錄";
android:textSize="18sp"/>
然後在相對於的java文件裏
Button button = (Button)findViewById(R.id.login_button);//通過id來找控件
button.setOnClickLinstener(new Button.OnClickLinstener(){
public void onClick(View v){
//提示控件,第一個參數爲content,第二個爲顯示文本,第三個爲顯示的時間
Toast.makeText(getApplicationContent,"按鈕被單擊啦!",Toast.LENGTH_LONG).show();
}
});
2.xml文件
對於xml文件中,直接可以通過xml中對Button的描述中來進行
<Button
android:id="@+id/login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登錄";
android:textSize="18sp"
android:onClick="onButtonClick"
/>
然後再相對於的java文件中將該處理函數進行相對於的處理就可以啦!
public void onButtonClick(View v)
{
Log.v("loginactivity","按鈕被單擊啦!");
}
3,界面優化
對於button我們也需要在不同的狀態的是有不同的顯示背景,因此我們需要在不同狀態的時候對Button的background進行一些相對應的改變這就是我們的需求
首先新建一個文件夾drawable,然後再這個文件夾中增加一個xml文件btn_style.xml
<?xml version="1.0" encoding="utf-8"?>
<selector>
<item android:state_focused="true" android:drawable="@drawable/btn_style_focus"/>
<item android:state_pressed="true android:drawable="@drawable/btn_style_press"/>
<item android:state_enabled="true" android:drawable="@drawable/btn_style_nomal"/>
</selector>
然後再佈局的xml下爲Button添加
android:background="@drawable/btn_style"
這樣就ok啦!