編輯:關於Android編程
按鈕是需要與用戶進行互動的控件。
Button繼承自TextView,凡是TextView有的特定,它都有。
public class Button extends TextView {
......
}
TextView的不同Button是使用了特別style的TextView。在Button創建的過程中,它使用了一個系統內部的style,
public Button(Context context, AttributeSet attrs) {
//創建Button的時候,系統給它使用了特別的style:com.android.internal.R.attr.buttonStyle
this(context, attrs, com.android.internal.R.attr.buttonStyle);
}
Button的使用方式Button被點擊後,需要有所響應。其實不僅是Button,所有的View(包括TextView)都可以添加響應。
安卓提供了兩種響應的方式。
給Button添加一個屬性android:onClick,讓它的值等於監聽函數的函數名。例如,叫onClick
在java源碼當中,創建一個onClick()函數,聲明成public, 返回void類型,傳入參數View,
public void onClick(View v)
{
}
使用View的getId(),識別需要響應的對象,添加響應代碼,
public void onClick(View v)
{
//使用getId(),識別需要響應的對象
switch(v.getId())
{
//添加需要響應的操作代碼;
case R.id.button1:
break;
}
break;
}
在java源碼當中,創建監聽器,
OnClickListener mListener = new OnClickListener() {
//這個onClick()函數與4.2.1中定義的完全一樣
public void onClick(View v)
{
//使用getId(),識別需要響應的對象
switch(v.getId())
{
//添加需要響應的操作代碼;
}
break;
}
}
通過findViewById()得到Button;再通過View的setOnClickListener設置監聽器mListener,
//獲取xml中的Button對象
Button btn = (Button) findViewById(R.id.my_button);
//設置監聽器
btn.setOnClickListener( mListener );
雖然這裡講的是Button響應的onClick,但實際上,所有的View都可以響應點擊操作。
所有都控件或者布局都是View的子類,所以它們設置監聽的方法也都是一樣的。
除了使用系統設計的按鈕樣式,也可以自己定義按鈕按下去和沒有按下去的效果。
在res\drawable\目錄上,點擊右鍵,啟動創建drawable resource的向導;
創建selector drawable的xml文件,文件名為button_selector;
這樣,就在res\drawable\目錄下創建了一個名為button_selector.xml的drawable文件。
根據Button是否被按下的狀態android:state_pressed,分別為它們設置不同的drawable。
android:state_pressed=true,說明當前按鈕被按下,
android:state_pressed=false,說明當前按鈕沒有被按下;
這裡我們用ColorDrawable演示設置Drawable。在res\values\colors.xml中定義的顏色的名字;給android:drawable屬性設置顏色,
-
-
如果使用其它類型的Drawable,使用方式類似。
例如背景是圖片:按下使用normal.png,未按下使用pressed.png。這些圖片放在res\mimap\目錄下。對應的selector就應該寫成,
-
-
給Button的android:background屬性,使用drawable selector,
Android 靜默安裝和智能安裝的實現方法
1 簡介最近研究了Android的靜默安裝和智能安裝,於是寫博客記錄一下。靜默安裝就是無聲無息的在後台安裝apk,沒有任何界面提示。智能安裝就是有安裝界面,但全部是自動的
Android中計時的兩種方法
1.Android中計時趁最近兩周不忙,自己支配的時間比較多,正好查漏補缺,這兩天看了些Thread的基礎知識,正好工作有個需求就是要記時。就把想到的記錄一下。在Andr
Android之同一個TextView設置不同樣式的文字
需求分析:很多時候,我們需要在視圖中顯示不同樣式的文字,但是為了減少viewgroup層級,不想新增很多個TextView控件來實現不同樣式的文字。那麼有沒有一種方式能夠
Android TextView高級顯示技巧實例小結
本文實例總結了Android TextView高級顯示技巧。分享給大家供大家參考,具體如下:1. 自定義字體可以使用setTypeface(Typeface)方法來設置文