想使用一个列表来显示下载数据
步骤如下:
第一步:定义一个布局,用来显示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();