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

       使用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>

>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值