編輯:Android開發實例
ListView 是android開發中最常用的組件之一,它通過一個adapter來構建顯示通常有三種adapter可以使用ArrayAdapter ,SimpleAdapter,CursorAdapter。CursorAdapter主要正對數據庫使用,下面通過例子介紹ArrayAdapter ,SimpleAdapter的簡單使用:
1:ArrayAdapter 它接受一個數組或者List作為參數來構建。
一下通過簡單例子說明:
創建Test 繼承ListActivity 這裡我們傳入一個string數組
- public class ListTest extends ListActivity {
- /** *//** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- String[] sw = new String[100];
- for (int i = 0; i < 100; i++) {
- sw[i] = "listtest_" + i;
- }
- ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,sw);//使用系統已經實現好的xml文件simple_list_item_1
- setListAdapter(adapter);
- }
- }
運行如圖:
從以上代碼可以看不我們不需要加載我們自己的layout 而是用系統已經實現的layout很快速的實現了listview
第二種SimpleAdapter:
先看下我們例子的最終截圖:
通過上圖可以看出listview每行不僅僅是一個string 包括了很多項,圖片,多項文字
我們通過構建list,並設置每項為一個map來實現:
代碼:創建TestList類繼承Activity
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- ArrayList<HashMap<String, Object>> users = new ArrayList<HashMap<String, Object>>();
- for (int i = 0; i < 10; i++) {
- HashMap<String, Object> user = new HashMap<String, Object>();
- user.put("img", R.drawable.user);
- user.put("username", "姓名(" + i+")");
- user.put("age", (20 + i) + "");
- users.add(user);
- }
- SimpleAdapter saImageItems = new SimpleAdapter(this,
- users,// 數據來源
- R.layout.user,//每一個user xml 相當ListView的一個組件
- new String[] { "img", "username", "age" },
- // 分別對應view 的id
- new int[] { R.id.img, R.id.name, R.id.age });
- // 獲取listview
- ((ListView) findViewById(R.id.users)).setAdapter(saImageItems);
下面是main.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">
- <TextView android:text="用戶列表" android:gravity="center"
- android:layout_height="wrap_content"
- android:layout_width="fill_parent" android:background="#DAA520"
- android:textColor="#000000">
- </TextView>
- <LinearLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content">
- <TextView android:text="姓名"
- android:gravity="center" android:layout_width="160px"
- android:layout_height="wrap_content" android:textStyle="bold"
- android:background="#7CFC00">
- </TextView>
- <TextView android:text="年齡"
- android:layout_width="170px" android:gravity="center"
- android:layout_height="wrap_content" android:textStyle="bold"
- android:background="#F0E68C">
- </TextView>
- </LinearLayout>
- <ListView android:layout_width="wrap_content"
- android:layout_height="wrap_content" android:id="@+id/users">
- </ListView>
- </LinearLayout>
之中listView前面的可以說是標題行,listview相當於用來顯示數據的容器,裡面每行是一個用戶信息,而用戶信息是樣子呢?
看看use.xml
- <?xml version="1.0" encoding="utf-8"?>
- <TableLayout
- android:layout_width="fill_parent"
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_height="wrap_content"
- >
- <TableRow >
- <ImageView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:id="@+id/img">
- </ImageView>
- <TextView
- android:layout_height="wrap_content"
- android:layout_width="150px"
- android:id="@+id/name">
- </TextView>
- <TextView
- android:layout_height="wrap_content"
- android:layout_width="170px"
- android:id="@+id/age">
- </TextView>
- </TableRow>
- </TableLayout>
也就是說每行包含了一個img 和2個文字信息
這個文件以參數的形式通過adapter在listview中顯示。
也就是:
- SimpleAdapter saImageItems = new SimpleAdapter(this,
- users,// 數據來源
- R.layout.user,//每一個user xml 相當ListView的一個組件
- new String[] { "img", "username", "age" },
- // 分別對應view 的id
- new int[] { R.id.img, R.id.name, R.id.age });
shimmer開源庫介紹 Shimmer是Fa
JSON代表JavaScript對象符號。它是一個獨立的數據交換格式,是XML的最佳替代品。本章介紹了如何解析JSON文件,並從中提取所需的信息。Android提供了四個
Android應用程序可以在許多不同地區的許多設備上運行。為了使應用程序更具交互性,應用程序應該處理以適合應用程序將要使用的語言環境方面的文字,數字,文件等。在本章中,我
JSON代表JavaScript對象符號。它是一個獨立的數據交換格式,是XML的最佳替代品。本章介紹了如何解析JSON文件,並從中提取所需的信息。Android提供了四個