編輯:關於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,
1 簡介最近研究了Android的靜默安裝和智能安裝,於是寫博客記錄一下。靜默安裝就是無聲無息的在後台安裝apk,沒有任何界面提示。智能安裝就是有安裝界面,但全部是自動的
1.Android中計時趁最近兩周不忙,自己支配的時間比較多,正好查漏補缺,這兩天看了些Thread的基礎知識,正好工作有個需求就是要記時。就把想到的記錄一下。在Andr
需求分析:很多時候,我們需要在視圖中顯示不同樣式的文字,但是為了減少viewgroup層級,不想新增很多個TextView控件來實現不同樣式的文字。那麼有沒有一種方式能夠
本文實例總結了Android TextView高級顯示技巧。分享給大家供大家參考,具體如下:1. 自定義字體可以使用setTypeface(Typeface)方法來設置文