Android ListView与Arrayadapter之间的搭配使用
在做安卓開發的時候很多時候都要用到ListView來顯示數據,ListView使用的也很廣泛,用到了ListView就會使用到adapter適配器,關鍵就在于adapter,剛開始學安卓的時候就根本不知道怎么根據自己的需要來選擇對應的adapter,今天自己也就來總結一下,方便查看。
在ListView中使用最多的adapter是ArrayAdapter、SimpleAdapter、BaseAdapter。ArrayAdapter從名稱上來看就知道是用來顯示數組的,SimpleAdapter是用來顯示比較復雜的數據,我一般用來顯示圖片+標題。BaseAdapter可以實現復雜的列表布局,由于BaseAdapter是一個抽象類,使用該類需要自己寫一個適配器繼承該類,正是由于繼承了該類,需要我們重寫一些方法,讓我們可以在代碼里控制列表的樣式,更加靈活。
一、ArrayAdapter顯示簡單的數據
布局文件activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><ListView android:id="@+id/listview"android:layout_width="match_parent"android:layout_height="match_parent"/></RelativeLayout>很簡單的一個布局文件,只是一個ListView。
MainActivity.java
package com.example.listview01;import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.widget.ArrayAdapter; import android.widget.ListView;public class MainActivity extends Activity {private ListView listview;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listview = (ListView) findViewById(R.id.listview);String [] list = new String []{"姓名:張三","性別:男","地址:重慶市沙坪壩區沙正街174號"};ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, list);listview.setAdapter(adapter);} }
ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, list)
第一個參數就不說了,第二個參數是Android提供的一個布局文件,第三個參數是要顯示的數據。
在Android為ListView指定的外觀形式通常有一下幾個。
simple_list_item_1:每個列表都是一個普通的文本。
simple_list_item_2:每個列表都是一個普通的文本(字體稍大)。
simple_list_item_checked:每個列表都有一個一選中的列表項。
simple_list_item_multiple_choice:每個列表都是帶復選框的文本。
simple_list_item_multiple_choice:每個列表都是帶復選框的文本。
測試結果如下:
但是這個看起來還是很單調,要是想要ListView每個item的自定義的話,系統提供的simple_list_item_1就不能滿足要求了,在這里我們就要自己重新寫一個布局文件了,由上面的描述(每個列表都是一個普通的文本)可知,我們也需要一個只有一個不同文本的布局文件,然后進行自定義。
item.xml
<TextViewxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/text"android:layout_width="match_parent"android:layout_height="wrap_content"android:textColor="#00ff00"android:textSize="30sp"android:background="#000000"/> 這里注意:上面寫的很明白了,是只包含一個文本的布局文件。作者在第一次使用自定義布局的時候是在一個LinearLayout中添加了一個TextView,導致一直報錯 ,后來研究了一下才知道是只能有一個文本布局。
在這個自定義的TextView中定義了一個黑色的背景,字體放大,設置了字體顏色,然后在程序的第20行代碼改成
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,item, list);
下面看效果圖:
有了自定義的item就可以根據自己的需求定義了~~
總結
以上是生活随笔為你收集整理的Android ListView与Arrayadapter之间的搭配使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android开发教程之--sql语句一
- 下一篇: android SharedPrefer