您的位置:首页 > 移动开发 > Android开发

android ListView布局之二(是用simpleAdapter绑定数据)

2014-01-22 17:02 686 查看
http://blog.csdn.net/chenzheng_java/article/details/6200536

最终效果图



 

 

目录结构



 

main.xml主布局文件,代码

[xhtml] view
plaincopy

<?xml version="1.0" encoding="utf-8"?>  

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

    android:orientation="vertical"  

    android:layout_width="fill_parent"  

    android:layout_height="fill_parent"  

    >  

<TextView    

    android:layout_width="fill_parent"   

    android:layout_height="wrap_content"   

    android:text="@string/hello"  

/>  

    <LinearLayout  

    android:layout_width="wrap_content"  

    android:layout_height="wrap_content" >  

    <TextView  

        android:text="@string/name"  

        android:gravity="center"  

         android:layout_width="150px"  

        android:layout_height="wrap_content"  

    />  

      

    <TextView  

        android:text="@string/age"  

        android:gravity="center"  

         android:layout_width="170px"  

        android:layout_height="wrap_content"  

    />  

      

    </LinearLayout>  

    <ListView  

    android:id="@+id/listView"  

    android:layout_width="wrap_content"  

    android:layout_height="wrap_content"  

    />  

      

      

</LinearLayout>  

 

user.xml组件布局文件代码

[xhtml] view
plaincopy

<?xml version="1.0" encoding="utf-8"?>  

<!-- 创建存放一行数据的组件 -->  

<TableLayout  

  xmlns:android="http://schemas.android.com/apk/res/android"  

  android:layout_width="fill_parent"  

  android:layout_height="wrap_content">  

 <TableRow>  

   

  <ImageView  

    android:id="@+id/image"  

    android:layout_width="50px"      

    android:layout_height="50px"   

  ></ImageView>  

    

  <TextView  

    android:id="@+id/userName"  

    android:gravity="center"  

    android:layout_height="wrap_content"  

    android:layout_width="150px"  

  ></TextView>  

    

  <TextView  

    android:id="@+id/userAge"  

    android:gravity="center"  

    android:layout_height="wrap_content"  

    android:layout_width="170px"  

  ></TextView>  

    

  </TableRow>  

</TableLayout>  

 

 

主Activity,listView.java代码

[java] view
plaincopy

package cn.com.android.listView;  

  

import java.util.ArrayList;  

import java.util.HashMap;  

import java.util.List;  

import java.util.Map;  

  

import android.app.Activity;  

import android.os.Bundle;  

import android.widget.ListView;  

import android.widget.SimpleAdapter;  

  

public class listView extends Activity {  

    @Override  

    public void onCreate(Bundle savedInstanceState) {  

        super.onCreate(savedInstanceState);  

        setContentView(R.layout.main);  

        ListView listView = (ListView) findViewById(R.id.listView);  

        /* 参数一多,有些人就头晕了。这里解说下,各个参数的意思。 

         * 第一个参数 this 代表的是当前上下文,可以理解为你当前所处的activity 

         * 第二个参数 getData() 一个包含了数据的List,注意这个List里存放的必须是map对象。simpleAdapter中的限制是这样的List<? extends Map<String, ?>> data 

         * 第三个参数 R.layout.user 展示信息的组件 

         * 第四个参数 一个string数组,数组内存放的是你存放数据的map里面的key。 

         * 第五个参数:一个int数组,数组内存放的是你展示信息组件中,每个数据的具体展示位置,与第四个参数一一对应 

         * */  

        SimpleAdapter adapter = new SimpleAdapter(this, getData(), R.layout.user,  

                new String[]{"image","userName","userAge"}, new int[]{R.id.image,R.id.userName,R.id.userAge});  

        listView.setAdapter(adapter);  

          

    }  

      

      

      

    /** 

     * @author chenzheng_java 

     * @description 准备一些测试数据 

     * @return 一个包含了数据信息的hashMap集合 

     */  

    private ArrayList<HashMap<String, Object>> getData(){  

        ArrayList<HashMap<String, Object>> arrayList = new ArrayList<HashMap<String,Object>>();  

        for(int i=0;i<10;i++){  

            HashMap<String, Object> tempHashMap = new HashMap<String, Object>();  

            tempHashMap.put("image", R.drawable.icon);  

            tempHashMap.put("userName", "用户"+i);  

            tempHashMap.put("userAge", 30-i);  

            arrayList.add(tempHashMap);  

              

        }  

          

          

        return arrayList;  

          

    }  

      

      

}  

strings.xml代码

[xhtml] view
plaincopy

<?xml version="1.0" encoding="utf-8"?>  

<resources>  

    <string name="hello">布局列表展示</string>  

    <string name="app_name">列表布局</string>  

    <string name="name">姓名</string>  

    <string name="age">年龄</string>  

</resources>  

 

废话连绵:

我们一起看看结构,一个主布局文件,一个组件布局文件,一个Activity类。

依旧分为三步:

第一步:定义布局文件,设计UI,包括寻找合适的图片了等等……

第二步:获取数据。这里用的是simpleAdapter,所以要求数据必须固定格式的

第三步:绑定数据源

然后,我们就可以看到我们想要的结果了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐