android学习(3)

14. Listview显示

官方提供了多种ListItem的Layout (R.layout),以下是较为常用的,更多的请查看API DOCR.layout http://androidappdocs.appspot.com/reference/android/R.layout.html:
◾android.R.layout.simple_list_item_1   一行text
◾android.R.layout.simple_list_item_2   一行title,一行text
◾android.R.layout.simple_list_item_single_choice   单选按钮
◾android.R.layout.simple_list_item_multiple_choice   多选按钮
◾android.R.layout.simple_list_item_checked    checkbox

ListView学习,在app上显示新闻列表(静态资源),目标如下:

在这里插入图片描述

1.android.R.layout.simple_list_item_1使用ArrayAdapter数组适配器,显示一行数据(新闻标题)

1)为读取资源中数据准备存放的数组

private String[] titles = null;

2)读取数据

titles = getResources().getStringArray(R.array.title);

3)使用适配器给listview传递数据

//使用数组适配器ArrayAdapter绑定titles字符串数组作为Listview空间的数据源
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
        MainActivity.this, android.R.layout.simple_list_item_1,titles
);

ListView lvNewList = findViewById(R.id.iv_new_list);
lvNewList.setAdapter(adapter);

显示如下

在这里插入图片描述

2.android.R.layout.simple_list_item_2使用SimpleAdapter显示两行数据(标题加作者)

ArrayAdapter 作为 ListView 的适配器使⽤时,只能⽤于 Item 中包含1 个 TextView 的情况。如果要在列表中显⽰新闻的标题及作者,则需要使⽤ SimpleAdapter 作为适配器。

1)在MainActivity中添加如下代码: 构造数据源的 List 对象。使⽤ List<Map<String, String> > dataList; 替换掉之前定义的 titles、authors 数组。

private String[] titles = null;
private String[] authors = null;
private List<Map<String,String>> datalist = new ArrayList<>();//在列表list中方一个map
private static final String NEW_TITLES = "news titles";
private static final String NEW_AUTHORS = "news authors";
int length;
titles = getResources().getStringArray(R.array.title);
authors = getResources().getStringArray(R.array.authors);
if(titles.length>authors.length){
   
    length =authors.length;
}else {
   
    length = titles.length;
}

for(int i =0;i<length;i++){
   
    Map map = new HashMap();
    map.put(NEW_TITLES,titles[i]);
    map.put(NEW_AUTHORS,authors[i]);
    datalist.add(map);
}

3)构造 SimpleAdapter 适配器。
SimpleAdapter 对象所需的 context 上下⽂参数、数据源对象均已经构造好。Item 布局则使⽤系统预定义的android.R.layout.simple_list_item_2资源,该资源包含两个 TextView 控件标签,具体可在 Android Studio 中查看。

SimpleAdapter adapter = new SimpleAdapter(
        MainActivity.this,datalist, android.R.layout.simple_list_item_2,
        new String[]{
   NEW_TITLES,NEW_AUTHORS
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值