Hi 大家好!
今天開始,我將陸續編寫Android UI中的常用控制項,來協助大家學習這些控制項。
照例,上笑話。。。
A先生髮現妻子的手機上經常有一則陌生人的簡訊,而且每次簡訊的內容都是一樣的:“趙兄托你幫我辦點事。”一天晚上十點半,A先生一舉將出軌的妻子和那個正在苟合的男人擒拿後,大罵:TMD,你以為那簡訊我看不懂?倒過來讀就 是“十點半我幫你脫胸罩"!
這節主要講4個控制項,分別是Button CheckBox EditText TextView
這4個控制項將是使用頻率很高的控制項,也是比較簡單的控制項。
我在這裡已經編寫好了每一個控制項,以及注釋,來方便大家熟悉。每一個控制項都是一個活動(表單),如
將程式運行起來後,預設顯示的是ButtonActivity活動,效果如下
1 Button
當程式運行起來,預設就是Button控制項的頁面,大家也看到了表單中擺放了很多的按鈕,那麼如何去定義一個Button呢?
思路是這樣的:先去建立一個布局檔案,然後在布局檔案中添加這個表單所需的控制項,然後在Activity中綁定這個布局檔案,在Activity中也能通過代碼的方式,修改控制項屬性,綁定事件等。。。
有了這樣的思路我們就開始幹活。
1 建立一個布局檔案,在項目的 res檔案夾 –> layout檔案夾
右鍵 建立-> 檔案
在彈出的對話方塊中的檔案名稱後去填寫這個檔案的名稱,我們取名叫做
button.xml
或者也可以這樣建立
注意,選擇其他選項
注意:建立名稱時,不要使用特殊字元和大寫字母。否則你將無法正確建立出布局檔案。。
當我們建立成功後,在雙擊開啟XML檔案 然後切換到程式碼檢視
然後在LinearLayout中間添加一個Button標籤,如下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button android:id="@+id/btn1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/btnck" />
</LinearLayout>
顏色代表的含義:
紅色: 代表你所建立出的控制項是什麼
藍色: 為所建立出來的控制項賦一個ID,最好是一個唯一的名字,這個ID將會在gen檔案夾下的R.java中的Class ID類中產生一個int 類型的常量,至於有什麼用處,如果做過編程,都知道我們要在後台擷取這些控制項,來控制它們,修改屬性啊,擷取使用者的操作等。後面將會說道在代碼中如果使用。
紫色: 代表這個控制項的寬度和高度。
fill_parent :代表此控制項將鋪滿父類定義的寬度(如果父類定義的寬度也是fill_parent ,那麼代表父類的寬高,為整個螢幕大小),那麼這個控制項的寬度將鋪滿螢幕。
match_parent:和上邊的fill_parent 一樣,都是鋪滿,區別在於match_parent屬性是Android2.2及以上的版本中才會有。
wrap_content:代表自適應高度,即:內容有多高,那麼它就顯示多高。
黃色: 代表你將在控制項中顯示什麼文本。這裡我們使用的是MVC模式,即在string.xml中定義好,然後在這裡應用。
到這裡第一步完成,接下來就是在Activity中去引用這個布局檔案。
通過setContentView方法就可以將我們剛才定義的布局檔案和這個表單綁定上,然後就可以直接運行。
運行出來後,控制項能正常顯示,但是沒有任何功能,這顯然也沒有太多的意義,下面就是通過代碼來控制控制項及綁定事件的操作。
還記得剛才我們在XML中設定的那個ID嗎?
這裡,通過 btn1 =(Button)findViewById(R.id.btn1);方式,就可以將剛才定義的那個Button控制項擷取到,並賦給btn1對象。btn1是一個Button對象。
通過btn1對象就可以給這個按鈕設定一些外觀屬性,如。
綁定事件
這段代碼首先使用了setOnClickListener方法,並使用了一個匿名內部類來實現一個Button的單擊事件。裡面的Intent 以及startActivity方法,在我之前的教程中都有介紹,如果大家遺忘了可以在去看看。
到這裡,我們的Button就介紹到這裡,Button主要就是擷取使用者的點擊,然後對應的在onClick裡做你需要的處理。
2 CheckBox
先來看看CheckBox張啥樣,以及可以幹什麼,
是不是和我們的HTML中的checkbox一樣?是的,其實就是一個多選按鈕,操作還是比較簡單,直接貼代碼了
也是一樣,這裡我建立了一個checkbox.xml布局檔案,以及一個叫CheckBoxActivity.java的Activity
然後是CheckBoxActivity.java,我先定義了一些全域變數,你需要在表單中用到什麼類型的控制項,就先去聲明什麼類型的控制項對象,然後通過findViewById方法擷取它們,然後再操作這些控制項對象。如
首先,將布局XML與表單綁定,然後再逐一擷取控制項
可以和上邊所講的Button一樣,設定外觀屬性或者綁定事件,我在這裡直接為CheckBox綁定了選項變更事件監聽器
當複選框的選中狀態發生改變時將會觸發onCheckedChanged函數,通過checkBox1.isChecked()方法就能擷取到此複選框現在的狀態 true為選中狀態,false為未選中狀態。
3 EditText
編輯框操作也是比較簡單,直接貼代碼
運行
4 TextView 主要用來做提示的文本
同上,這裡不再贅述
希望我的教程,能給大家一點點協助,也希望大家能給出我的不足和建議。來協助我更好的去做教程,謝謝大家!
原始碼已經上傳到天聖達網站,大家可以去下載:北京天聖達科技有限公司