ListView控件在android中控件类中,算是比较复杂的一种,其实现一般包含以下几个部分

1)数据的准备

2)构建适配器

3)显示数据

在使用ListVIew这个控件时,我发现好多人都出现了这样的问题"your content must have a listview whose id attribute is"android.R.id.List”错误,大致如下图

然后好多网友给出的答案就是,在.xml中 android:id="@+id/list" 改为 android:id="@+id/android:list“

其实并不一定是这样的错误。首先要区别采用的是何种使用ListView方法。ListView的控件有两种使用方法,

一、使用android内部的ListView【以一个例子来说明】

1.主.xml文件 【注意红色部分】

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">
 <ListView
        android:id="@+id/android:list"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:drawSelectorOnTop="false"
        android:scrollbars="vertical"
       
        ></ListView>
 </LinearLayout>

2.ListView显示的内容.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/linelayout"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:orientation="horizontal">
<TextView
    android:id="@+id/key"
    android:layout_height="wrap_content"
   
    android:layout_width="wrap_content"
    android:textColor="#aa0000"
    />
<TextView
     android:id="@+id/value"
    android:layout_height="wrap_content"
     android:layout_width="wrap_content"
     />
</LinearLayout>

3.java文件

继承了ListActivity类,而不是Activity类

public class MainActivity extends ListActivity {

protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  
//注意此处  没有用findViewById来取得ListView控件的id

//创建hashmap型数据
  ArrayList<HashMap<String,String>> mylist=new ArrayList<HashMap<String,String>>();

HashMap<String,String> map1=new HashMap<String,String>();
  HashMap<String,String> map2=new HashMap<String,String>();

map1.put("key", "张三");
  map1.put("value", "学生");
  map2.put("key", "李四");
  map2.put("value", "老师");
  mylist.add(map1);
  mylist.add(map2);
 //构建适配器
  SimpleAdapter listAdapter=new SimpleAdapter(this,mylist,R.layout.hashmap,
    new String[]{"key","value"},new int[]{R.id.key,R.id.value});

//适配器中的数据时如何传递到ListView的,  
  setListAdapter(listAdapter);

}

二、自定义ListView

1.主xml文件

与上面只有一处区别

android:id="@+id/list"

2.listview的布局文件: 同上

3.java文件

protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  listview=(ListView)findViewById(R.id.list);
  ArrayList<HashMap<String,String>> mylist=new ArrayList<HashMap<String,String>>();

HashMap<String,String> map1=new HashMap<String,String>();
  HashMap<String,String> map2=new HashMap<String,String>();

map1.put("key", "张三");
  map1.put("value", "学生");
  map2.put("key", "李四");
  map2.put("value", "老师");
  mylist.add(map1);
  mylist.add(map2);
 
  SimpleAdapter listAdapter=new SimpleAdapter(this,mylist,R.layout.hashmap,
    new String[]{"key","value"},new int[]{R.id.key,R.id.value});
  //listview这个对象添加setAdapter对象
 listview.setAdapter(listAdapter);

转载于:https://www.cnblogs.com/stoneFang/archive/2013/04/19/6715341.html

android中ListView的简单使用相关推荐

  1. android listview高级,Android中Listview点赞功能的实现

    最近这段时间一直在看Android,利用Listview去实现点赞功能,下面给大家介绍下基本思路. 基本思路: 进入界面–>获取数据–> 在Listview中显示–> 通过map集合 ...

  2. android中ListView控件onItemClick事件中获取listView传递的数据

    http://blog.csdn.net/aben_2005/article/details/6592205 本文转载自:android中ListView控件&&onItemClick ...

  3. android listview 数据同步,android中ListView数据刷新时的同步方法

    本文实例讲述了android中ListView数据刷新时的同步方法.分享给大家供大家参考.具体实现方法如下: public class Main extends BaseActivity { priv ...

  4. Android中socket通信简单实现

    Android中socket通信简单实现 socket通信需要有一个服务器和客户端,可以把同一个APP作为服务器跟客户端,也可以分开成两个APP. 先上个图: 这里以一个APP作为服务器跟客户端为示例 ...

  5. Android中ListView选中事件setOnItemSelectedListener无反应不生效问题

    Android中ListView选中事件setOnItemSelectedListener无反应不生效问题 在学习Android中ListView组件时,android模拟器运行app时,发现点击有反 ...

  6. android listview 分析,Android中ListView用法实例分析

    本文实例分析了Android中ListView用法.分享给大家供大家参考,具体如下: 通过在Layout中添加ListView Widget可以达到在页面布局具有列表效果的交互页面.在这里通过举例来说 ...

  7. android中PAG的简单使用

    (入门篇)android中PAG的简单使用 一.pag是什么? 示例:pag官网 二.使用步骤 1.引入库 代码如下(示例):在app文件夹下的build.gradle文件中,添加下面这条依赖,添加到 ...

  8. Android中ListView的使用以及使用适配器设置数据源

    场景 Android中使用Adapter(适配器)给RecycleView设置数据源: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detail ...

  9. Android中ListView分类

    2019独角兽企业重金招聘Python工程师标准>>> 1. 引言 在Android开发过程中往往有这样的需求,将ListView中的内容按年,月,日进行分类显示,要实现这样的效果我 ...

  10. Android中ListView结合网络请求开发小案例(适合初学者必看的一篇详细实例)

    本文旨在对Android基础项目,ListView项目实际小应用(更多的结合小版块完成对用户需求的完整代码体现) 首先在这里,说说CSDN这个平台... 相信大家一定也不陌生,个人之前在学习中遇到的各 ...

最新文章

  1. android代码混淆笔记
  2. commons-lang(time应用)
  3. 结构体位域及联合体解析
  4. 为@RequestMapping标注的方法扩展其传入参数
  5. 深度学习-人工神经网络概述
  6. 局域网共享问题全方位解决
  7. 【BZOJ2337】XOR和路径,概率期望DP+高斯消元
  8. 设计模式的七大设计原则:其七:合成复用原则
  9. 【linux驱动分析】misc设备驱动
  10. modalTransitionStyle各种present效果
  11. ascii码值大小顺序排序c语言,ascii码值的大小顺序是怎样的?
  12. 2013大数据全球技术峰会PPT
  13. 【转载】一些常用的WebServices 天气,IP,邮编,Emai
  14. 编程大佬行为准则:一杯茶一包烟,一行代码写一天
  15. phpmailer 使用
  16. mp3计算机无法识别,MP3\MP4连接windows电脑后无法识别怎么办
  17. .NET 6 实现滑动验证码(七)、生成验证码
  18. 时间复杂度分析:递归算法
  19. matlab 角度 弧度
  20. ecw2c在工作中非常糟糕的一天教会了我关于建立Stack Overflow社区的知识

热门文章

  1. Go by Example练习
  2. 设计模式学习02:简单工厂模式、工厂模式以及抽象工厂模式(具体)
  3. 如何将CAD图纸在线转换成JPG图片格式
  4. Java 集合系列Stack详细介绍(源码解析)和使用示例
  5. Windows程序设计_19_测试Windows应用程序加载函数
  6. Nginx 读写分离详解
  7. zabbix监控系统的实际应用(客户端安装-基本应用设置-报警提醒篇)
  8. 结对编程之求首尾相连数组中最大子数组的和
  9. 图像处理之基础---叹为观止的图像处理
  10. Android学习笔记--项目框架介绍