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

 

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

 

 

 

main.xml代码如下

 

night_layout.xml

grid2.java

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> 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 hashMap = (HashMap) parent.getItemAtPosition(position); Toast.makeText(grid2.this, hashMap.get("ItemText").toString(), Toast.LENGTH_SHORT).show(); } }); } /** *创造数据源,数据源中存放的数据为hashmap对象,hashmap中存放着相应的图片id以及描述文本信息 */ private ArrayList> getData(int number){ ArrayList> sourceList = new ArrayList>(); HashMap tempHashMap = new HashMap(); for (int i = 0; i < number; i++) { tempHashMap.put("ItemImage", R.drawable.icon); tempHashMap.put("ItemText", "图片"+i); sourceList.add(tempHashMap); tempHashMap = new HashMap(); } return sourceList; } }

作者废话:

 

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

对于我们来说,无非就是

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

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

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

第四步:为组件创建各种事件监听,与用户进行交互。

你可能感兴趣的:(android_布局)