D.K.的Android旅程----SimpleAdapter实现ListView

原创 2013年12月03日 16:43:27

       使用Adapter接口实现ListView.

       上次已经介绍过了ArrayAdapter与继承ListActivity实现ListView,接下来说说使用SimpleAdapter实现ListView,SimpleAdapter。

       使用Adapter实现ListView无非就是先设置好Adapter然后在调用setAdapter().所以,关键还是如何设计Adapter.

SimpleAdapter:

       虽然命名有simple简单的意思,但其实一点都不简单。它的功能十分强大。Android基本的应用场景都可以由它实现。

先是XML:

<LinearLayoutxmlns: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" >

   

    <ListView

        android:id="@+id/listview"

       android:layout_width="fill_parent"

       android:layout_height="wrap_content"

         />

</LinearLayout>

 

SimpleAdapter有一个构造方法:

       SimpleAdapter(Contextcontext, List<? extends Map<String, ?>> data, int resource,String[] from, int[] to)。

       所以,下面代码我会以此构造函数来实例化adapter.

Java部分代码:

       privateString[] names = new String[]

              {"AA", "BB", "CC", "DD"};

       privateString[] descs = new String[]

              {"aa", "bb", "cc", "dd"};      

 

       @Override

       public voidonCreate(Bundle savedInstanceState)

       {

              super.onCreate(savedInstanceState);

              setContentView(R.layout.main);

              // 创建一个List集合,List集合的元素是Map

              List<Map<String,Object>> listItems =

                            newArrayList<Map<String, Object>>();

              for(int i = 0; i < names.length; i++)

              {

                     Map<String,Object> listItem = new HashMap<String, Object>();

                     listItem.put("personName",names[i]);

                     listItem.put("desc",descs[i]);

                     listItems.add(listItem);

              }

              // 创建一个SimpleAdapter

              SimpleAdaptersimpleAdapter = new SimpleAdapter(this, listItems,

                     R.layout.simple_item,

                     new String[] {"personName", "desc"},

                     newint[] { R.id.name, R.id.desc });

              ListViewlist = (ListView) findViewById(R.id.mylist);

              // 为ListView设置Adapter

              list.setAdapter(simpleAdapter);

 

上面用到了一个自己写的XML( R.layout.simple_item):

<?xmlversion="1.0" encoding="utf-8"?>

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="horizontal"

    android:layout_width="match_parent"

    android:layout_height="wrap_content">

<!--定义一个ImageView,用于作为列表项的一部分。-->

<LinearLayout

    android:orientation="vertical"

    android:layout_width="match_parent"

    android:layout_height="wrap_content">

<!--定义一个TextView,用于作为列表项的一部分。-->

<TextViewandroid:id="@+id/name"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:textSize="20dp"

    android:textColor="#f0f"

    android:paddingLeft="10dp"

    />

<!--定义一个TextView,用于作为列表项的一部分。-->

<TextViewandroid:id="@+id/desc"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:textSize="14dp"

    android:paddingLeft="10dp"

    />

</LinearLayout>

</

       使用Adapter接口实现ListView.

       上次已经介绍过了ArrayAdapter与继承ListActivity实现ListView,接下来说说使用SimpleAdapter实现ListView,SimpleAdapter。

       使用Adapter实现ListView无非就是先设置好Adapter然后在调用setAdapter().所以,关键还是如何设计Adapter.

SimpleAdapter:

       虽然命名有simple简单的意思,但其实一点都不简单。它的功能十分强大。Android基本的应用场景都可以由它实现。

先是XML:

<LinearLayoutxmlns: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" >

   

    <ListView

        android:id="@+id/listview"

       android:layout_width="fill_parent"

       android:layout_height="wrap_content"

         />

</LinearLayout>

 

SimpleAdapter有一个构造方法:

       SimpleAdapter(Contextcontext, List<? extends Map<String, ?>> data, int resource,String[] from, int[] to)。

       所以,下面代码我会以此构造函数来实例化adapter.

Java部分代码:

       privateString[] names = new String[]

              {"AA", "BB", "CC", "DD"};

       privateString[] descs = new String[]

              {"aa", "bb", "cc", "dd"};      

 

       @Override

       public voidonCreate(Bundle savedInstanceState)

       {

              super.onCreate(savedInstanceState);

              setContentView(R.layout.main);

              // 创建一个List集合,List集合的元素是Map

              List<Map<String,Object>> listItems =

                            newArrayList<Map<String, Object>>();

              for(int i = 0; i < names.length; i++)

              {

                     Map<String,Object> listItem = new HashMap<String, Object>();

                     listItem.put("personName",names[i]);

                     listItem.put("desc",descs[i]);

                     listItems.add(listItem);

              }

              // 创建一个SimpleAdapter

              SimpleAdaptersimpleAdapter = new SimpleAdapter(this, listItems,

                     R.layout.simple_item,

                     new String[] {"personName", "desc"},

                     newint[] { R.id.name, R.id.desc });

              ListViewlist = (ListView) findViewById(R.id.mylist);

              // 为ListView设置Adapter

              list.setAdapter(simpleAdapter);

 

上面用到了一个自己写的XML( R.layout.simple_item):

<?xmlversion="1.0" encoding="utf-8"?>

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="horizontal"

    android:layout_width="match_parent"

    android:layout_height="wrap_content">

<!--定义一个ImageView,用于作为列表项的一部分。-->

<LinearLayout

    android:orientation="vertical"

    android:layout_width="match_parent"

    android:layout_height="wrap_content">

<!--定义一个TextView,用于作为列表项的一部分。-->

<TextViewandroid:id="@+id/name"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:textSize="20dp"

    android:textColor="#f0f"

    android:paddingLeft="10dp"

    />

<!--定义一个TextView,用于作为列表项的一部分。-->

<TextViewandroid:id="@+id/desc"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:textSize="14dp"

    android:paddingLeft="10dp"

    />

</LinearLayout>

</LinearLayout>

>

android组件ListView之SimpleAdapter简单使用

SimpleAdapter java.lang.Object ↳ android.widget.BaseAdapter ↳ android.widget.SimpleAdapte...
  • sinat_25926481
  • sinat_25926481
  • 2017年04月20日 20:31
  • 1536

android listView-simpleadapter(点击事件)

在android中ListView是展现数据用到最多的一个组件,也是非常非常重要的一个组件,在android开发当中基本上处处都可以看到,例如,大家常用到的QQ,网页,等等一些客户端基本上就是有lis...
  • u010778803
  • u010778803
  • 2013年08月12日 21:59
  • 3717

ListView实现图文列表(重要) 使用SimpleAdapter适配器

1.在主布局定义一个listView 2.自定义一个布局,用来显示listView的列表单项 图文结构,2个键值对分别用来存储图片,文本,在加入集合。因此需要list...
  • qxb19930216
  • qxb19930216
  • 2016年09月13日 23:23
  • 274

D.K.的android旅程--ListView

列表视图(ListView)是开发中常用的组件,它以垂直列表的方式显示所有列表项。实现ListView有两种方式: 1、 直接使用ListView创建 2、 让Activity继承ListActivi...
  • daokai1993
  • daokai1993
  • 2013年11月20日 21:16
  • 502

Android之ListView中的分割线和行高

http://blog.csdn.net/way_ping_li/article/details/8037558 ListView中每个Item项之间都有分割线,设置android:...
  • cicilover
  • cicilover
  • 2014年06月17日 12:34
  • 2915

ListView之SimpleAdapter的使用

SimpleAdapter是扩展性最好的适配器,可以定义各种你想要的布局,而且使用很方便 >, int, java.lang.String[], int[])" style="color:rgb(26...
  • abc5382334
  • abc5382334
  • 2013年10月29日 10:29
  • 75580

D.K.的Android旅程----BaseAdapter实现ListView

上一篇博客是写的SimpleAdapter实现ListView. 接下来介绍的是BaseAdapter实现ListView. BaseAdapter对开发者而言拥有更大的可控性.开发者可控制列表的...
  • daokai1993
  • daokai1993
  • 2013年12月03日 17:02
  • 372

ListView和ArrayAdapter、SimpleAdapter适配器的简单使用

在Android开发中,ListView是一个非常常用的控件,当然,现在已经有RecycleView来替代它了,但ListView还是有不少人在使用的。用到ListView,就一定会用到适配器。那什么...
  • u014727709
  • u014727709
  • 2016年12月28日 16:10
  • 1895

使用ListView,SimpleAdapter及CheckBox的心得

这两天无聊的时候突然想到过年短信群发的问题,直接群发短信别人收到了肯定不会有什么感觉,但是如果在短信的前面加上每个的名字,那么收短信的人肯定不会是觉得你在群发短信,因此我就想到了做这样一简单的应用,在...
  • liuwei0604
  • liuwei0604
  • 2013年02月08日 20:12
  • 4134

重写simpleadapter实现listview样式自定义

前段时间在进行开发时需要自定义listview具体内容的样式。自定义部分的主要要求如下:   1、listview中隔行要变色; 2、每一行中listview包含的item加载的数据...
  • li_huorong
  • li_huorong
  • 2016年04月14日 13:56
  • 1058
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:D.K.的Android旅程----SimpleAdapter实现ListView
举报原因:
原因补充:

(最多只允许输入30个字)