Android入门之ListView应用解析(一)

Android中的ListView是一个经常用到的控件,ListView里面的每个子项Item可以使一个字符串,也可以是一个组合控件。本文先来说说ListView的实现:

1.准备ListView要显示的数据;

2.使用 一维或多维 动态数组 保存数据;

3.构建适配器 , 简单地来说, 适配器就是 Item数组 , 动态数组 有多少元素就生成多少个Item;

4.把 适配器 添加到ListView,并显示出来。

接下来,看看本文代码所实现的ListView效果:

接下来,就开始UI的XML代码:

main.xml代码如下,很简单,也不需要多做解释了:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:id="@+id/LinearLayout01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <ListView android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:id="@+id/MyListView">
    </ListView>
</LinearLayout>

my_listitem.xml的代码如下,my_listitem.xml用于设计ListView的Item:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:layout_width="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_height="wrap_content"
    android:id="@+id/MyListItem"
    android:paddingBottom="3dip"
    android:paddingLeft="10dip">
    <TextView
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:id="@+id/ItemTitle"
        android:textSize="30dip">
    </TextView>
    <TextView
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:id="@+id/ItemText">
    </TextView>
</LinearLayout>

解释一下,里面用到的一些属性:

1.paddingBottom="3dip",Layout往底部留出3个像素的空白区域

2.paddingLeft="10dip",Layout往左边留出10个像素的空白区域

3.textSize="30dip",TextView的字体为30个像素那么大。

最后就是JAVA的源代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    //绑定XML中的ListView,作为Item的容器
    ListView list = (ListView) findViewById(R.id.MyListView);

    //生成动态数组,并且转载数据
    ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
    for(int i=0;i<30;i++)
    {
     HashMap<String, String> map = new HashMap<String, String>();
     map.put("ItemTitle", "This is Title.....");
     map.put("ItemText", "This is text.....");
     mylist.add(map);
    }
    //生成适配器,数组===》ListItem
    SimpleAdapter mSchedule = new SimpleAdapter(this, //没什么解释
                       mylist,//数据来源
                       R.layout.my_listitem,//ListItem的XML实现

                       //动态数组与ListItem对应的子项
                       new String[] {"ItemTitle", "ItemText"}, 

                       //ListItem的XML文件里面的两个TextView ID
                       new int[] {R.id.ItemTitle,R.id.ItemText});
    //添加并且显示
    list.setAdapter(mSchedule);
}
(0)

相关推荐

  • android开发教程之实现listview下拉刷新和上拉刷新效果

    复制代码 代码如下: public class PullToLoadListView extends ListView implements OnScrollListener { private static final String TAG = PullToLoadListView.class.getSimpleName(); private static final int STATE_NON = 0; private static final int STATE_PULL_TO_REFRE

  • Android入门之ListView应用解析(二)

    上一篇关于Android中ListView的介绍讲的是如何制作一个具有两行文本的自定义控件,作为ListView的Item的使用方法.本文接下来也是围绕ListView和Item,更加深入地介绍它们的用法. 首先,先来看看本文代码运行的结果,本文的Item比上一篇中的Item多出左边的图标: main.xml的源代码,跟上一篇的一样,这里就不作解释了,直接贴出item.xml的代码,就是它实现ImageItem的UI: <?xml version="1.0" encoding=&

  • Android提高之ListView实现自适应表格的方法

    前面有文章介绍了使用GridView实现表格的方法,本文就来说说如何用ListView实现自适应的表格.GridView比ListView更容易实现自适应的表格,但是GridView每个格单元的大小固定,而ListView实现的表格可以自定义每个格单元的大小,但因此实现自适应表格也会复杂些(主要由于格单元大小不一).此外,GridView实现的表格可以定位在具体某个格单元,而ListView实现的表格则只能定位在表格行.因此还是那句老话:根据具体的使用环境而选择GridView 或者 ListV

  • android中ListView数据刷新时的同步方法

    本文实例讲述了android中ListView数据刷新时的同步方法.分享给大家供大家参考.具体实现方法如下: public class Main extends BaseActivity { private static final String TAG = "tag"; private static final int STATUS_CHANGE = 0; ExpandableListView mElv; ArrayList<GroupInfo> mGroupArray;

  • android开发教程之listview显示sqlite数据

    复制代码 代码如下: package com.it.db; import java.util.List;import com.it.dao.PersonDao;import com.it.domain.Person;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.View;import android.view.ViewGroup;impo

  • Android编程之控件ListView使用方法

    本文实例讲述了Android编程之控件ListView使用方法.分享给大家供大家参考.具体分析如下: 控件ListView是一个重要的控件,可以被用作用户列表等显示,下面进行它的操作测试. 下面代码实现了生成了一个ListView显示,并对每个条目的单击事件作出响应. 源代码: package com.list; import java.util.ArrayList; import java.util.HashMap; import android.app.Activity; import an

  • Android控件之ListView用法实例详解

    本文实例讲述了Android控件之ListView用法.分享给大家供大家参考.具体如下: 示例一: 在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示. main.xml布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/LinearLayout01" androi

  • Android中ExpandableListView的用法实例

    本文实例讲述了Android中ExpandableListView的用法,ExpandableListView是android中可以实现下拉list的一个控件,具体的实现方法如下: 首先:在layout的xml文件中定义一个ExpandableListView 复制代码 代码如下: <LinearLayout       android:id="@+id/linearLayout"      android:layout_width="fill_parent"

  • Android中使用ListView实现漂亮的表格效果

    在这里我们要使用Android ListView来实现显示股票行情,效果图如下,红色表示股票价格上涨,绿色表示股票价格下跌. 第一步.定义color.xml如下: 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <resources>     <color name="color_dark_grey">#808080</color>     <

  • android实现listview分页的方法

    本文实例讲述了android实现listview分页的方法.分享给大家供大家参考.具体分析如下: 最近做了下listview的分页,跟WEB上的分页是一个意思,需要那几个分页参数,不同的是sqlite中分页的查询语句,简便的方法需要用Limit,Offset关键字,前者是查询每页展示的记录数,后者是越过多少记录数,说得明白点就是忽略前面多少行记录之后,取多少行记录 我分页采用了一个重要的类Page,通过封装Page类,做为参数传递进来,返回出去也是个Page对象 import java.util

随机推荐