您的位置:首页 > 其它

gridview布局示例二(通过simpleAdapter进行图片等数据绑定)

2014-01-22 17:04 459 查看
http://blog.csdn.net/chenzheng_java/article/details/6199243



上面的是最终效果图,现在贴出文件结构

 

 



 

main.xml代码如下

[xhtml] view
plaincopy

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

<!-- 主界面本身就是一个GridView,用于显示night_layout.xml组件信息 -->  

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

    android:id="@+id/gridView"  

    android:layout_width="fill_parent"  

    android:layout_height="fill_parent"  

    android:numColumns="auto_fit"  

    android:horizontalSpacing="10dp"  

    android:verticalSpacing="10dp"  

    android:columnWidth="90dp"  

    android:stretchMode="columnWidth"  

    android:gravity="center"  

    >  

  

</GridView>  

 

night_layout.xml

[xhtml] view
plaincopy

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

<!--  

    该布局文件相当于建立了一个新的组件,这个组件主要包含一个图片以及一个描述性文本 

 -->  

<RelativeLayout  

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

  android:layout_width="fill_parent"  

  android:layout_height="wrap_content"  

  android:paddingBottom="4dip"  

  >  

  <ImageView  

    android:id="@+id/ItemImage"  

    android:layout_width="wrap_content"  

    android:layout_height="wrap_content"  

    android:layout_centerHorizontal="true"  

  ></ImageView>  

  <TextView  

    android:id="@+id/ItemText"  

    android:layout_width="wrap_content"  

    android:layout_height="wrap_content"  

    android:layout_centerHorizontal="true"  

    android:layout_below="@id/ItemImage"  

    android:text="androidText1"  

  />  

</RelativeLayout>  

grid2.java

[java] view
plaincopy

package cn.com.android.grid;  

  

import java.util.ArrayList;  

import java.util.HashMap;  

import java.util.Map;  

import java.util.Random;  

  

import android.app.Activity;  

import android.os.Bundle;  

import android.view.View;  

import android.widget.AdapterView;  

import android.widget.GridView;  

import android.widget.SimpleAdapter;  

import android.widget.Toast;  

import android.widget.AdapterView.OnItemClickListener;  

  

public class grid2 extends Activity {  

    @Override  

    public void onCreate(Bundle savedInstanceState) {  

        super.onCreate(savedInstanceState);  

           

        setContentView(R.layout.main);  

        // 获取gridview对象  

        GridView gridView = (GridView) findViewById(R.id.gridView);  

        // 获取数据源  

        ArrayList<HashMap<String, Object>> sourceList = getData(10);  

        // 绑定数据源  

        gridView.setAdapter(new SimpleAdapter(this, sourceList, R.layout.night_layout,  

                new String[]{"ItemImage","ItemText"}, new int[]{R.id.ItemImage,R.id.ItemText}));  

        // 绑定事件触发  

        gridView.setOnItemClickListener(new OnItemClickListener(){  

  

            public void onItemClick(AdapterView<?> parent, View view,  

                    int position, long id) {  

                HashMap<String, Object> hashMap =  (HashMap<String, Object>) parent.getItemAtPosition(position);  

                Toast.makeText(grid2.this, hashMap.get("ItemText").toString(), Toast.LENGTH_SHORT).show();  

                  

            }  

              

              

        });  

          

          

          

    }  

    /** 

     *创造数据源,数据源中存放的数据为hashmap对象,hashmap中存放着相应的图片id以及描述文本信息 

     */  

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

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

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

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

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

            tempHashMap.put("ItemText", "图片"+i);  

            sourceList.add(tempHashMap);  

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

        }  

        return sourceList;  

          

          

          

    }  

}  

作者废话:

 

由代码我们可以看得出,对于gridview相关的应用,我们一般需要一个2个布局文件,一个布局文件(如night_layout.xml)定义组件存放数据,而另一个组件(如main.xml)则作为容器存放组件。

对于我们来说,无非就是

第一步:写好组件和容器,即定义好布局文件

第二步:整理数据源。一般的方法都是提供一个方法,方法内部放着对数据的详细处理,方法返回整理好的数据源

第三步:将数据源绑定到组件。这里通过setAdapter()进行的

第四步:为组件创建各种事件监听,与用户进行交互。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐