您的位置:首页 > 其它

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);
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: