listview的介绍 listview是Androidstudio的一种高级控件,能实现添加多组数据,需要adapter适配器实现 datelist添加到item
并显示到activity中。
文章图片
文章图片
目标实现 【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);