Adroidstudio——listview的使用和arrayadapter的异步更新

listview的介绍 listview是Androidstudio的一种高级控件,能实现添加多组数据,需要adapter适配器实现 datelist添加到item
并显示到activity中。
Adroidstudio——listview的使用和arrayadapter的异步更新
文章图片

Adroidstudio——listview的使用和arrayadapter的异步更新
文章图片

目标实现 【Adroidstudio——listview的使用和arrayadapter的异步更新】将一个list中的多组数据异步更新,并显示到listview中
初始化

private ListView listView; static List>nameList=new ArrayList<>(); ...... arrayAdapter =new ArrayAdapter<>(MainActivity.this, item_text, nameList); //第一个参数是当前活动,第二个参数是设置的每组数据形式,第三个是添加的数据。 listView.setAdapter(arrayAdapter); //将list与adapter连接

异步更新
Thread thread=new Thread(new Runnable() { @Override public void run() { String url="https://www.52bqg.com/modules/article/search.php?searchkey=%B5%DB%B0%D4"; get_shu(url); //这里运行一个耗时的函数 //UI控件的更新必须在UI线程中 //耗时的操作需要在子线程中 MainActivity.this.runOnUiThread(new Runnable() { @Override public void run() { arrayAdapter.notifyDataSetChanged(); //更新listview的函数 } }); }}); thread.start();

注意事项 adapter连接的date必须是原来的,不能new、不能“=”,否则更新函数无效。
SimpleListView 多组数据显示
int[] heads=new int[]{R.drawable.ic_launcher_background}; String[] names = newString[]{"李白"}; String[] nicknames=new String[]{"诗仙"}; List list = new ArrayList(); for (int i=0; iitem=new HashMap<>(); item.put("heads",heads[i]); item.put("name",names[i]); item.put("nicknames",nicknames[i]); list.add(item); } SimpleAdapter simpleAdapter=new SimpleAdapter(this,list,R.layout.item, new String[]{"heads","names","nicknames"}, new int[]{R.id.imageView,R.id.textview,R.id.textcview2}); listView.setAdapter(simpleAdapter);

    推荐阅读