第一步:main.xml。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<!-- 标题 -->
<include
android:id="@+id/titlebar"
layout="@layout/title_bar" />
<GridView
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="90dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center" />
</LinearLayout>
2.item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:background="@drawable/terminal_item_image_selector">
<TextView
style="@style/terminal_show_item_word"
android:id="@+id/terminal_city1" />
</LinearLayout>
3.TerminalActivity
package cn.itkt.travelsky.ui.activity.helpservice;
import java.util.ArrayList;
import java.util.List;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import cn.itkt.travelsky.R;
import cn.itkt.travelsky.SkyApplication;
import cn.itkt.travelsky.model.CityModel;
import cn.itkt.travelsky.model.Terminal;
import cn.itkt.travelsky.ui.activity.AbstractActivity;
import cn.itkt.travelsky.ui.group.FifthGroup;
public class TerminalActivity extends AbstractActivity {
private List<CityModel> list;
private List<CityModel> filterList;//过滤过后的集合
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.terminal_show, R.string.terminal);
setTitle();
list = SkyApplication.listcity;
filterList = new ArrayList<CityModel>();
for (CityModel cm : list) {
List<Terminal> terminals = cm.getTerminal();
if(terminals.size() > 0){
filterList.add(cm);
}
}
Log.i("TerminalActivity", "list:"+list.size()+",filterList:"+filterList.size());
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new TerminalActivityAdapter(filterList, TerminalActivity.this, R.layout.terminal_show_item));
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
startActivity(TeminalListActivity.class, filterList.get(position).getSpelling());
}
});
}
/**
* 初始化标题栏
*/
private void setTitle() {
mBtnLeft.setText(this.getResources().getString(R.string.use_help));
mBtnLeft.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
FifthGroup.group.removeView(2);
Intent i = new Intent(TerminalActivity.this, HelpActivity.class);
FifthGroup.group.startActivity(HelpActivity.class.getSimpleName(),i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
}
});
}
/**
* 根据城市查询终端列表
* @param clazz
* @param city
*/
private void startActivity(Class<?> clazz, String city) {
Intent i = new Intent(this, clazz);
i.putExtra("selected_city", city);
FifthGroup.group.startActivity(clazz.getSimpleName(),i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
}
/**
* 后退事件
*/
@Override
public void onBackPressed() {
FifthGroup.group.back();
return;
}
}
4.适配器
/**
* @Title: TerminalActivityAdapter.java
* @Package cn.itkt.travelsky.ui.activity.helpservice
* @Description: TODO(用一句话描述该文件做什么)
* @author hjw
* @date 2012-6-25 下午04:58:46
* @version V1.0
*/
package cn.itkt.travelsky.ui.activity.helpservice;
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.TextView;
import cn.itkt.travelsky.R;
import cn.itkt.travelsky.model.CityModel;
/**
* @ClassName: TerminalActivityAdapter
* @Description: Terminal的数据绑定(这里用一句话描述这个类的作用)
* @author hjw
* @date 2012-6-25 下午04:58:46
*
*/
public class TerminalActivityAdapter extends BaseAdapter {
private List<CityModel> data;//存放cityModel对象
private int sourceid;
private LayoutInflater layoutInflater;
public TerminalActivityAdapter(List<CityModel> data, Context context, int sourceid) {
this.data = data;
this.sourceid = sourceid;
layoutInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return data.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView cityName;
if(convertView == null){
convertView = layoutInflater.inflate(sourceid, null);
cityName = (TextView) convertView.findViewById(R.id.terminal_city1);
convertView.setTag(cityName);
}else{
cityName = (TextView) convertView.getTag();
}
cityName.setText(data.get(position).getName());
return convertView;
}
}
这样就搞定了显示。
效果图,如图所示: