想使用一個列表來顯示下載數據
步驟如下:
第一步:定義一個佈局,用來顯示listview的item
<?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">
<TextView
android:id="@id/LicenseActivity_ModelName"
android:layout_width="160dp"
android:layout_height="wrap_content">
</TextView>
<TextView
android:id="@id/LicenseActivity_DownState"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
</LinearLayout>
第二步:在需要顯示的頁面定義一個ListView
<ListView
android:id="@id/LicenseActivity_ListView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/LicenseActivity_DownModel"
app:layout_constraintRight_toRightOf="parent">
</ListView>
第三步:準備數據
定義list存放數據
List<ConcurrentHashMap<String, Object>> listitem = new ArrayList<ConcurrentHashMap<String, Object>>(); //存儲數據的數組列表
數據賦值
for (String item : ListModel)
{
ConcurrentHashMap<String, Object> map = new ConcurrentHashMap<String, Object>();
map.put("ModelName",item);
map.put("DownState","0");
listitem.add(map);
}
定義SimpleAdapter,這裏參數說明一下:
getApplicationContext():獲取上下文 listitem:定義的List用來存放數據的 R.layout.licensemodellist:第一步定義的佈局文件 new String[]{"ModelName", "DownState"} :list裏面的key的值 new int[]{R.id.LicenseActivity_ModelName, R.id.LicenseActivity_DownState}:佈局文件裏面定義的id,注意這裏的顯示順序。
myAdapter= new SimpleAdapter(getApplicationContext(), listitem, R.layout.licensemodellist,
new String[]{"ModelName", "DownState"},
new int[]{R.id.LicenseActivity_ModelName, R.id.LicenseActivity_DownState});
第四步:給listview設置適配器
mListView.setAdapter(myAdapter);
第五步:如果有數據更新需要執行更新函數,記得一定要在UI線程執行
myAdapter.notifyDataSetChanged();