GridView 一种是直接用simpleAdapt,另一种是自己写一个myAdapt 继承baseAdapt.这里是第二个例子。
http://fonter.iteye.com/blog/781403
package com.grid.test;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.widget.GridView;public class GridTest extends Activity { private GridView gridview ; private Listlist; private GridAdapter adapter; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.gridlayout); gridview = (GridView) findViewById(R.id.gridview); list = new ArrayList (); list.add(new GridInfo("name1")); list.add(new GridInfo("name2")); list.add(new GridInfo("name3")); list.add(new GridInfo("name4")); list.add(new GridInfo("name5")); list.add(new GridInfo("name6")); list.add(new GridInfo("name6")); list.add(new GridInfo("name7")); list.add(new GridInfo("name8")); list.add(new GridInfo("name9")); list.add(new GridInfo("name10")); adapter = new GridAdapter(this); adapter.setList(list); gridview.setAdapter(adapter); }}
package com.grid.test;/** * Copyright (C) 2010,Under the supervision of China Telecom Corporation * Limited Guangdong Research Institute * The New Vphone Project * @Author fonter.yang * @Create date:2010-10-11 * */public class GridInfo { private String name; public GridInfo(String name) { super(); this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
3、Adapter 实现
package com.grid.test;import java.util.List;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;/** * Copyright (C) 2010,Under the supervision of China Telecom Corporation Limited * Guangdong Research Institute The New Vphone Project * * @Author fonter.yang * @Create date:2010-10-11 * */public class GridAdapter extends BaseAdapter { private class GridHolder { ImageView appImage; TextView appName; } private Context context; private Listlist; private LayoutInflater mInflater; public GridAdapter(Context c) { super(); this.context = c; } public void setList(List list) { this.list = list; mInflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); } public int getCount() { // TODO Auto-generated method stub return list.size(); } @Override public Object getItem(int index) { return list.get(index); } @Override public long getItemId(int index) { return index; } @Override public View getView(int index, View convertView, ViewGroup parent) { GridHolder holder; if (convertView == null) { convertView = mInflater.inflate(R.layout.grid_item, null); holder = new GridHolder(); holder.appImage = (ImageView)convertView.findViewById(R.id.itemImage); holder.appName = (TextView)convertView.findViewById(R.id.itemText); convertView.setTag(holder); }else{ holder = (GridHolder) convertView.getTag(); } GridInfo info = list.get(index); if (info != null) { holder.appName.setText(info.getName()); } return convertView; }}
4单个组件的XML
5显示界面的XML