Android学习笔记ListView
在手機實際應用中,我們常常需要列表來顯示我們的信息,比如我們的聯系人列表,短信信息列表等。在Android中通過ListView來實現。
ListView 的XML屬性
| 屬性名稱 | 描述 |
| android:choiceMode | 規定此ListView所使用的選擇模式。缺省狀態下,list沒有選擇模式。屬性值必須設置為下列常量之一: none,值為0,表示無選擇模式; singlechoice,值為1,表示最多可以有一項被選中; multichoice,值為2,表示可以多項被選中。 |
| android:divider | 規定List項目之間用某個圖形或顏色來分隔。可以用"@[+][package:]type:name"或者"?[package:][type:]name"(主題屬性)的形式來指向某個已有資源;也可以用"#rgb","#argb","#rrggbb"或者"#aarrggbb"的格式來表示某個顏色。 |
| android:dividerHeight | 分隔符的高度。若沒有指明高度,則用此分隔符固有的高度。必須為帶單位的浮點數,如"14.5sp"。可用的單位如px(pixel像素),dp(density-independent pixels?與密集度無關的像素), sp(scaled pixels based on preferred font size?基于字體大小的固定比例的像素),?in (inches英寸), mm (millimeters毫米)。 可以用"@[package:]type:name"或者"?[package:][type:]name"(主題屬性)的格式來指向某個包含此類型值的資源。 |
| android:entries | 引用一個將使用在此ListView里的數組。若數組是固定的,使用此屬性將比在程序中寫入更為簡單。 必須以"@[+][package:]type:name"或者?"?[package:][type:]name"的形式來指向某個資源。 |
| android:footerDividersEnabled | 設成flase時,此ListView將不會在頁腳視圖前畫分隔符。此屬性缺省值為true。 屬性值必須設置為true或false。 可以用"@[package:]type:name"或者"?[package:][type:]name"(主題屬性)的格式來指向某個包含此類型值的資源。 |
| android:headerDividersEnabled | 設成flase時,此ListView將不會在頁眉視圖后畫分隔符。此屬性缺省值為true。 屬性值必須設置為true或false。 可以用"@[package:]type:name"或者"?[package:][type:]name"(主題屬性)的格式來指向某個包含此類型值的資源。 ? |
例子一:利用Android自帶的List格式
XML布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"android:paddingLeft="8dp"android:paddingRight="8dp"><ListViewandroid:id="@id/android:list"android:layout_width="fill_parent"android:layout_height="0dip"android:background="#FFFFFF"android:divider="#000000"android:dividerHeight="2dp"android:layout_weight="1"android:drawSelectorOnTop="false"/><TextViewandroid:id="@id/android:empty"android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="#FF0000"android:text="No Data"/>" </LinearLayout>源代碼:
@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);String[] contries= getResources().getStringArray(R.array.countries_arry);setContentView(R.layout.activity_listview);setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice,contries));getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); //這里我們直接在源代碼中設置選擇模式,也可以在xml文件中進行配置 getListView().setBackgroundColor(Color.WHITE);getListView().setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View view, int position,long id) {Toast.makeText(getApplicationContext(),((TextView) view).getText(), Toast.LENGTH_SHORT).show();}});} ListView的選擇模式有三種: CHOICE_MODE_NONE:表示無選擇模式;設置為無選擇模式時,將不能選中Item項,但能響應ItemClick事件 CHOICE_MODE_SINGLE:表示最多可以有一項被選中 CHOICE_MODE_MULTIPLE:表示可以多項被選中 方法setListAdapter 設置ListView背后的數據。參數為ListAdapter,這里我們使用ArrayAdapter,該Adatper可以指定我們自己定義的Item對象。這里我使用系統已有的對象:android.R.layout.simple_list_item_single_choice? 一般的: simple_list_item_single_choice ? ? 對應的選擇模式為: CHOICE_MODE_SIGLE; (效果如圖一) simple_list_item_multiple_choice 對應的選擇模式為: CHOICE_MODE_MULTIPLE (效果如圖二) simple_list_item_1 ? ? ? ? ? ? ? ? ? ? ? ? 對應的選擇模式為: CHOICE_MODE_NONE (效果如圖三)自定義ListView 格式
建立描述list item格式的XML文件
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingLeft="2dp"android:paddingRight="2dp" > </TextView>源文件設置xml文件
@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);String[] contries = getResources().getStringArray(R.array.countries_arry);setListAdapter(new ArrayAdapter<String>(this,R.layout.activity_mylistview, contries));getListView().setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View view,int position, long id) {Toast.makeText(getApplicationContext(),((TextView) view).getText(), Toast.LENGTH_SHORT).show();}});}效果圖
?
另外上面用到了數組string 的定義:在values/string.xml文件中定義如下:
<string-array name="countries_arry"><item>Bharain</item><item>Bangladesh</item><item>Barbados</item><item>Belarus</item><item>Belgium</item><item>Belize</item><item>Benin</item></string-array> 這樣就可以在源代碼中通過R.array.countries_arry引用Toast:
Toast是一種提供給用戶簡潔信息的視圖。Toast類幫助你創建和顯示該信息。
該視圖已浮于應用程序之上的形式呈現給用戶。因為它并不獲得焦點,即使用戶正在輸入什么也不會受到影響。它的目標是盡可能已不顯眼的方式,使用戶看到你提供的信息。有兩個例子就是音量控制和設置信息保存成功。
使用該類最簡單的方法就是調用一個靜態方法,讓他來構造你需要的一切并返回一個新的?Toast?對象。
常量
int LENGTH_LONG
持續顯示視圖或文本提示較長時間。該時間長度可定制。
參見
setDuration(int)
?
int LENGTH_SHORT
持續顯示視圖或文本提示較短時間。該時間長度可定制。該值為默認值。
參見
setDuration(int)
轉載于:https://www.cnblogs.com/dennytao/p/5351902.html
總結
以上是生活随笔為你收集整理的Android学习笔记ListView的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 维护无后效性的技巧——立即计算代价
- 下一篇: 信号与系统——微分方程与差分方程——编辑