简单的,数据少的列表可以用for实现,避免用Listview --->Adapter的繁琐
先上效果图:
关键代码如下:
1.要显示的数据,json格式:
{
"status": "1",
"msg": "获取协议列表成功",
"list": [
{
"id": "1",
"parent_id": "0",
"name": "中国",
"remark": "",
"rank": "0",
"id_link": "0_1_",
"is_end": "0",
"son": [
{
"id": "2",
"parent_id": "1",
"name": "北京",
"remark": "",
"rank": "1",
"id_link": "0_1_2_",
"is_end": "0"
},
{
"id": "3",
"parent_id": "1",
"name": "天津",
"remark": "",
"rank": "1",
"id_link": "0_1_3_",
"is_end": "0"
},
{
"id": "4",
"parent_id": "1",
"name": "河北省",
"remark": "",
"rank": "1",
"id_link": "0_1_4_",
"is_end": "0"
},
{
"id": "5",
"parent_id": "1",
"name": "山西省",
"remark": "",
"rank": "1",
"id_link": "0_1_5_",
"is_end": "0"
},
{
"id": "6",
"parent_id": "1",
"name": "内蒙古",
"remark": "",
"rank": "1",
"id_link": "0_1_6_",
"is_end": "0"
},
{
"id": "7",
"parent_id": "1",
"name": "辽宁省",
"remark": "",
"rank": "1",
"id_link": "0_1_7_",
"is_end": "0"
},
{
"id": "8",
"parent_id": "1",
"name": "吉林省",
"remark": "",
"rank": "1",
"id_link": "0_1_8_",
"is_end": "0"
},
{
"id": "9",
"parent_id": "1",
"name": "黑龙江",
"remark": "",
"rank": "1",
"id_link": "0_1_9_",
"is_end": "0"
},
{
"id": "10",
"parent_id": "1",
"name": "上海",
"remark": "",
"rank": "1",
"id_link": "0_1_10_",
"is_end": "0"
},
{
"id": "11",
"parent_id": "1",
"name": "江苏省",
"remark": "",
"rank": "1",
"id_link": "0_1_11_",
"is_end": "0"
},
{
"id": "12",
"parent_id": "1",
"name": "浙江省",
"remark": "",
"rank": "1",
"id_link": "0_1_12_",
"is_end": "0"
},
{
"id": "13",
"parent_id": "1",
"name": "安徽省",
"remark": "",
"rank": "1",
"id_link": "0_1_13_",
"is_end": "0"
},
{
"id": "14",
"parent_id": "1",
"name": "福建省",
"remark": "",
"rank": "1",
"id_link": "0_1_14_",
"is_end": "0"
},
{
"id": "15",
"parent_id": "1",
"name": "江西省",
"remark": "",
"rank": "1",
"id_link": "0_1_15_",
"is_end": "0"
},
{
"id": "16",
"parent_id": "1",
"name": "山东省",
"remark": "",
"rank": "1",
"id_link": "0_1_16_",
"is_end": "0"
},
{
"id": "17",
"parent_id": "1",
"name": "河南省",
"remark": "",
"rank": "1",
"id_link": "0_1_17_",
"is_end": "0"
},
{
"id": "18",
"parent_id": "1",
"name": "湖北省",
"remark": "",
"rank": "1",
"id_link": "0_1_18_",
"is_end": "0"
},
{
"id": "19",
"parent_id": "1",
"name": "湖南省",
"remark": "",
"rank": "1",
"id_link": "0_1_19_",
"is_end": "0"
},
{
"id": "20",
"parent_id": "1",
"name": "广东省",
"remark": "",
"rank": "1",
"id_link": "0_1_20_",
"is_end": "0"
},
{
"id": "21",
"parent_id": "1",
"name": "广 西",
"remark": "",
"rank": "1",
"id_link": "0_1_21_",
"is_end": "0"
},
{
"id": "22",
"parent_id": "1",
"name": "海南省",
"remark": "",
"rank": "1",
"id_link": "0_1_22_",
"is_end": "0"
},
{
"id": "23",
"parent_id": "1",
"name": "重庆",
"remark": "",
"rank": "1",
"id_link": "0_1_23_",
"is_end": "0"
},
{
"id": "24",
"parent_id": "1",
"name": "四川省",
"remark": "",
"rank": "1",
"id_link": "0_1_24_",
"is_end": "0"
},
{
"id": "25",
"parent_id": "1",
"name": "贵州省",
"remark": "",
"rank": "1",
"id_link": "0_1_25_",
"is_end": "0"
},
{
"id": "26",
"parent_id": "1",
"name": "云南省",
"remark": "",
"rank": "1",
"id_link": "0_1_26_",
"is_end": "0"
},
{
"id": "27",
"parent_id": "1",
"name": "西 藏",
"remark": "",
"rank": "1",
"id_link": "0_1_27_",
"is_end": "0"
},
{
"id": "28",
"parent_id": "1",
"name": "陕西省",
"remark": "",
"rank": "1",
"id_link": "0_1_28_",
"is_end": "0"
},
{
"id": "29",
"parent_id": "1",
"name": "甘肃省",
"remark": "",
"rank": "1",
"id_link": "0_1_29_",
"is_end": "0"
},
{
"id": "30",
"parent_id": "1",
"name": "青海省",
"remark": "",
"rank": "1",
"id_link": "0_1_30_",
"is_end": "0"
},
{
"id": "31",
"parent_id": "1",
"name": "宁 夏",
"remark": "",
"rank": "1",
"id_link": "0_1_31_",
"is_end": "0"
},
{
"id": "32",
"parent_id": "1",
"name": "新 疆",
"remark": "",
"rank": "1",
"id_link": "0_1_32_",
"is_end": "0"
}
]
}
]
}
2.显示的activity,及fragment,自定义GridAdapter:
import java.util.HashMap; import java.util.List; import android.R.anim; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.GridView; import android.widget.TextView; import com.google.gson.Gson; import com.xiebao.R; import com.xiebao.addtrad.adapter.GridAddressAdapter; import com.xiebao.bean.Address; import com.xiebao.bean.AddressList; import com.xiebao.fatherclass.FatherFragment; import com.xiebao.util.IConstant; import com.xiebao.util.save.SaveUserInfoUtil; import com.xiebao.view.TopBarView; public class AddressGridFragment extends FatherFragment { protected String areaid = "0"; private ViewGroup rootView; /** * 清空条件 */ private View mClear; public static AddressGridFragment newInstance() { AddressGridFragment frag = new AddressGridFragment(); return frag; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { rootView = (ViewGroup) inflater.inflate(R.layout.address_grid_fragment_layout, container, false); topBarView = (TopBarView) rootView.findViewById(R.id.topBarView); mClear=findView(rootView, R.id.clear_condition); return rootView; } @Override public void onActivityCreated(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onActivityCreated(savedInstanceState); initView(); initListener(); } private void initListener() { mClear.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { saveAddress(null); } }); getAreaData(); } /** * 获取地址数据 */ private void getAreaData() { final HashMap hashMap = new HashMap (); // session id 暂定为fm253j45fsl2bk63csu2ln2p87 hashMap.put("sid", SaveUserInfoUtil.getUserSid(context)); // 用户名,暂定为bbbbb hashMap.put("username", SaveUserInfoUtil.getUserName(context)); // String // area=getArguments().getString(IConstant.AREA_ID,String.valueOf(0)); // 区域id hashMap.put("area_id", areaid); String url = super.getUrl(IConstant.AREA_LIST, hashMap); super.volley_post(url); } @Override protected void correcttResponse(String response) { // TODO Auto-generated method stub setData(response); } private void setData(String response) { Gson gson = new Gson(); AddressList data = gson.fromJson(response, AddressList.class); List
list = data.getList(); int number = list.size(); if (number == 0) { return; } for (int i = 0; i < number; i++) { View view = View.inflate(context, R.layout.single_address_layout, null); TextView countName = (TextView) view.findViewById(R.id.county_name); GridView gridview = (GridView) view.findViewById(R.id.gridview); final Address adress = list.get(i); countName.setText(adress.getName()); countName.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { saveAddress(adress); } }); // GridAddressAdapter adpter=new GridAddressAdapter(context, list) List sonList = adress.getSon(); GridAddressAdapter adapter=new GridAddressAdapter(context, sonList); // ArrayAdapter adapter=new ArrayAdapter(context, android.R.layout.simple_list_item_1, sonList); gridview.setAdapter(adapter); rootView.addView(view); } } private void initView() { topBarView.renderView(R.string.area_text); } } import android.support.v4.app.Fragment; import com.xiebao.addtrad.fragment.AddressGridFragment; import com.xiebao.fatherclass.AbstractListFragmentActivity; public class AddressGridActivity extends AbstractListFragmentActivity{ @Override protected Fragment setFragment() { // TODO Auto-generated method stub return AddressGridFragment.newInstance(); } }import java.util.List; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.sax.StartElementListener; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.xiebao.R; import com.xiebao.addtrad.activity.AddressListActivity; import com.xiebao.bean.Address; import com.xiebao.core.ToastUtils; public class GridAddressAdapter extends AddressAdapter { /** * 地区id */ public static final String AREA = "AREA_ID"; public GridAddressAdapter(Context context, List data) { super(context, data); // TODO Auto-generated constructor stub } @Override public View getView(int position, View convertView, ViewGroup parent) { TextView textview = (TextView) inflater.inflate( R.layout.grid_item_layout, parent, false); final Address address = (Address) getItem(position); final String addreName = address.getName(); textview.setText(addreName); textview.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Bundle bundle = new Bundle(); bundle.putSerializable(GridAddressAdapter.AREA, address); context.startActivity(new Intent(context, AddressListActivity.class).putExtras(bundle)); context.finish(); } }); return textview; } }
3.xml布局文件