ExpandableListView
2015-10-30 19:56
197 查看
package com.bwie.fragment; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.List; import com.bwie.bean.City; import com.bwie.bean.MyData; import com.bwie.test.R; import com.google.gson.Gson; import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import android.widget.ExpandableListAdapter; import android.widget.ExpandableListView; import android.widget.TextView; import android.widget.Toast; /* * 自定义控件frag */ public class MyViewFrag extends Fragment { //ExpandableListView控件 ExpandableListView el = null; List<City> list; ExpandableListAdapter adapter = null; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub //载入个布局 View v = LayoutInflater.from(getActivity()).inflate(R.layout.myview_layout, null); //获取ExpandableListView控件 el = (ExpandableListView) v.findViewById(R.id.exList); //定义一个adapter adapter= new BaseExpandableListAdapter() { @Override public boolean isChildSelectable(int groupPosition, int childPosition) { // TODO Auto-generated method stub return false; } @Override public boolean hasStableIds() { // TODO Auto-generated method stub return false; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { // TODO Auto-generated method stub TextView text =new TextView(getActivity()); text.setText(list.get(groupPosition).getName()); return text; } @Override public long getGroupId(int groupPosition) { // TODO Auto-generated method stub return 0; } @Override public int getGroupCount() { // TODO Auto-generated method stub return list.size(); } @Override public Object getGroup(int groupPosition) { // TODO Auto-generated method stub return groupPosition; } @Override public int getChildrenCount(int groupPosition) { // TODO Auto-generated method stub return list.get(groupPosition).getCities().size(); } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { TextView text =new TextView(getActivity()); text.setText(list.get(groupPosition).getCities().get(childPosition)); return text; } @Override public long getChildId(int groupPosition, int childPosition) { // TODO Auto-generated method stub return 0; } @Override public Object getChild(int groupPosition, int childPosition) { // TODO Auto-generated method stub return childPosition; } }; new MyAsynctask().execute(""); return v; } @Override public void onResume() { // TODO Auto-generated method stub super.onResume(); } /* * 自定义内部类MyAsynctask用于网络请求 */ class MyAsynctask extends AsyncTask<String, Integer, String>{ @Override protected String doInBackground(String... params) { // TODO Auto-generated method stub try { //HttpURLConnection用于获取网络数据 URL url = new URL("http://ic.snssdk.com/2/article/city/"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setConnectTimeout(6000); connection.setRequestMethod("GET"); connection.setRequestProperty("charset", "utf-8"); connection.setReadTimeout(6000); int i = -1; byte[] b = new byte[1024]; StringBuffer sb = new StringBuffer(); if (connection.getResponseCode()==200) { InputStream is = connection.getInputStream(); while((i=is.read(b))!=-1){ sb.append(new String(b,0,i)); } } Gson gson = new Gson(); MyData mydata = gson.fromJson(sb.toString(), MyData.class); list = mydata.getData(); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } @Override protected void onPostExecute(String result) { // TODO Auto-generated method stub Toast.makeText(getActivity(), list.size()+" ", 1000).show(); //把加载好的adapter放到列表中 el.setAdapter(adapter); super.onPostExecute(result); } } }
相关文章推荐
- 数据可视化之美之疾病潜在关联
- 第十四周第五天
- LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- POJ2318(计算几何)
- Android bitmap 的缓存-LruCache
- HDU 5056 Boring count(BestCoder Round #11 (Div. 2))
- (转)论架构师的自我修养
- Struts2基于XML配置文件实现权限校验
- 2015南阳CCPC D - Pick The Sticks 背包DP.
- ListView 滑动footerview不断拉长的解决方法
- 《学习opencv》笔记——矩阵和图像操作——cvSetIdentity,cvSolve,cvSplit,cvSub,cvSubS and cvSubRS
- iOS开发之--将 "中文" 转化成 "拼音"
- 唯一分解定理(算术基本定理)及应用
- Layout(差束约分系统)
- __Block和__Weak的区别
- 包装类-Character
- android遇到的问题
- 磁盘高速缓存
- CocoaPods的安装使用和常见问题
- 机房收费系统——测试计划