編輯:關於Android編程
ListActivity可以用來實現列表功能。在android中,ListActivity提供了對基本的單行、雙行列表的封裝,同時支持自定義列表。自定義列表主要是基於ListView來實現的,為了方便起見,在此一並介紹。
實現一個列表包括3步:選擇或自定義列表項布局文件、實現適配器並加載數據、為ListActivity設置適配器。
基於單行布局的simple_list_item_1布局文件、基於簡單雙行布局的simple_list_item_2布局文件、基於單行單選布局的simple_list_item_single_choice布局文件、基於單行多選布局的simple_list_item_multiple_choice布局文件、類似樹狀圖的simple_expandable_list_item_1/simple_expandable_list_item_2布局文件等。
PreferenceActivity主要用於實現偏好設置,在布局上PreferenceActivity以PreferenceCreen為根布局,支持CheckBoxPreference等多種形式的偏好設置,這些偏好值默認存儲於應用的SharePreference中,通過getSharedPreference可以獲取SharedPreferences對象,通過Preference.OnPreferenceChangeListener監聽器可以監聽到偏好值得變化。
提供了進行二選一偏好的方法,還支持偏好的說明。
DialgPreference僅作為一個借口存在,如果借助DialogPreference實現更加復雜的偏好必須繼承DialogPreference。
提供支持輸入框的偏好設置的功能,通過getEditText方法可以獲得輸入框的內容,通過getText方法可以獲得SharedPreference中存儲的偏好值,通過setText方法可以將偏好值保存在SharedPreferences中。
當某個偏好有多個偏好值可選時,ListPreference就派上用場了,在使用ListPreference是需要注意entries和entryValue屬性,其中entries表示界面的內容,而entryValue對應的是實際偏好值。
用於設置鈴聲的特殊偏好控件,目前Android提供的鈴聲類型包括ringtong、notification、alarm和all等。其中all表示所有可用的鈴聲。
提供了偏好組的功能。
目前Android支持兩種類型的適配器:基本適配器(BaseAdapter)和游標適配器(CursorAdapter)。基本適配器是最通用的適配器,游標適配器是用來適配數據庫的數據流的,其他的系統級適配器都是繼承自這兩種適配器。
BaseAdapter適配器是基本的適配器,是其他適配器的基類。實際開發中會調用BaseAdapter的子類或通過BaseAdapter自定義適配器來實現視圖與數據的適配功能。
在默認情況下,ArrayAdapter假定整個布局文件為一個TextView,只有指定了mFiledId,ArrayAdapter才認為加載了一個自定義布局。ArrayAdapter的實現有很強的局限性,僅能顯示單行的列表。
在SimpleCursorAdapter的初始化和setViewBinder的實現過程中指定了布局文件、游標、數據項、控件ID等,但是沒有處理布局加載和數據綁定,在bindView的實現中處理了布局加載和數據綁定。
從bindView的實現中可以看出,ViewBinder實際上是用戶的一個自定義實現接口,當用戶沒有進行自定義實現時,會通過傳遞的控件數量進行默認數據綁定。
支持圖片加載,不過這時通過游標獲取的不再是文本數據,而是圖片的URL。
在進行普通數據庫數據加載時比較復雜的場景也可以利用SimpleCursorAdapter而非自定義適配器來實現。當默認數據綁定無法滿足需求時,可以使用ViewBinder。
在BaseAdapter適配器中,應用了設計模式的觀察者模式(Observer Pattern),當數據源發生變化時,可以通知顯示控件自行刷新。
通過分析,AdapterDataSetObserver是AdapterView的一個私有類,在開發者為ListView設置適配器時,ListView會通過適配器注冊觀察器,當開發者調用適配器的notifyDataSetChanged方法時,ListView會收到數據源變化的通知,進行自行刷新。
在數據庫適配器中數據發生變化時,應重新獲取游標(Cursor),然後在調用notifyDataSetChanged方法進行數據刷新。
對於基於BaseAdapter的自定義適配器,需要重點關注getView=方法的實現,getView方法完成的主要工作是列表項布局文件的加載和數據的綁定。需要注意的是,只有convertView為空時加載布局文件,這樣可以避免無謂的性能損耗,這是優化ListView顯示的一個重要方法。
基於CursorAdapter的自定義適配器的實現重點在於bingView方法和newView方法。其中bingView方法用於綁定數據,newView方法用於加載布局文件。
考慮到加載列表項時多次操作findViewById方法,對性能有所影響,因此在Android中設計ViewHolder,以其來進行優化。通過View的setTag方法和getTag方法可大幅度提高顯示速率,這樣是優化ListView顯示的一種重要方法。
最近在參加CSDN博客之星,希望大家給投一票,謝謝啦~ 點這裡投我一票吧~前言 在開發當中,我們常常需要實現文件上傳,比較常
一、前言今天我們來看一下Android中一個眾人熟悉的一個屬性:shareUserId,關於這個屬性可能大家都很熟悉了,最近在開發項目,用到了這個屬性,雖然知道一點知識,
1.問題是如何發生的,會在什麼情況下發生此類問題?當用戶運用手機清理助手或後台回收我們的應用造成我們應用程序進程被殺死的時候就有可能出現這種空指針的問題,下面舉個例子我們
本文實例講述了Android編程開發之EditText中不輸入特定字符會顯示相關提示信息的方法。分享給大家供大家參考,具體如下:先看效果圖:源碼如下:布局文件:<R