GridView的使用

第一步: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;
}


}

这样就搞定了显示。

效果图,如图所示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值