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总结整理----(2)自定义ListView(SimpleAdapter实现)

Adapter是链接后端数据和前端UI的重要适配器接口,充当了UI和数据之间的一个纽带。Data、View和Adapter关系如下: 常见的Adapter子类有: BaseAdapter:是一个抽...

Android中的ListView使用案例(SimpleAdapter实现)

ListView是可以垂直的滚动的显示一组列表的内容,其中的每一个条目可以是一个单独的组件,也可以是由多个组件组成的组合控件。 实现一个ListView控件的步奏: 1、准备ListView所要显...

Android入门:ListView(SimpleAdapter实现)

ListView是类似于将一个界面分为一行一行,如下图: 注意:listView.getItemAtPosition(int pos)内部调用了adapter.getIt...
  • xiazdong
  • xiazdong
  • 2012年07月01日 00:30
  • 32593

Android入门- listView的实现 SimpleAdapter

listView的实现 SimpleAdapter public class MainActivity extends Activity { @Override protected void on...

Android ListView使用SimpleAdapter示例

  • 2015年08月15日 00:35
  • 5.49MB
  • 下载

android ListView使用的三种方法汇总(通过继承BaseAdapter,使用SimpleAdapter和SimpleCursorAdapter)

android中使用ListView显示列表,共有三种实现方式: 分别是通过继承baseAdapter,直接使用simpleAdapter和simplecursoradapter三种方式 ...

[Android] Adapter:SimpleAdapter SimpleCursorAdapter ArrayAdapter 与ListView的用法

AdapterView: ListView GridView Gallery Spinner Adapter: SimpleAdapter SimpleCursorAdapter ArrayAdap...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:D.K.的Android旅程----SimpleAdapter实现ListView
举报原因:
原因补充:

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