android端获取网络数据添加到二级列表ExpandableListView
来源:互联网 发布:企业邮箱需要域名吗 编辑:程序博客网 时间:2024/05/16 04:29
//模拟数据,转换为二维数组格式
public class ExUtils { /** * jsonarray格式转成list格式,若为空返回null * @param array2 * @return * @throws JSONException */ private static ArrayList<String> getListValue() throws JSONException { ArrayList<String> list = new ArrayList<String>(); for (int i = 0; i < 5; i++) { String s="xigua"+i; list.add(s); } return list; } // ArrayList转成一维数组 private static String[] getArrayValue(ArrayList<String> list2) { String str[] = new String[0]; if (list2 != null) { str = list2.toArray(new String[list2.size()]); } return str; } /** * 获取子项目方法 * * @return */ public static String[][] getItemChild() { String[] arr1, arr2, arr3; String[][] arrTwo = null;// // 从网页获取数据 ArrayList<String> list1, list2, list3;//// HttpClient client = new DefaultHttpClient();// HttpPost post = new HttpPost(urlPath); try {// InputStream responseStream = client.execute(post).getEntity()// .getContent();// // 记得转换成gbk编码// BufferedReader bufferedReader = new BufferedReader(// new InputStreamReader(responseStream, "UTF-8"));// String webContentString = bufferedReader.readLine();// // json解析**************************//// JSONObject object = new JSONObject(webContentString);//// JSONArray array1 = object.getJSONArray("item1");// JSONArray array2 = object.getJSONArray("item2");// JSONArray array3 = object.getJSONArray("item3"); arrTwo = new String[3][]; // json转成list list1 = getListValue(); list2 = getListValue(); list3 = getListValue(); // 转成一维数组 arr1 = getArrayValue(list1); arr2 = getArrayValue(list2); arr3 = getArrayValue(list3); // 用arraylis存儲得到的非空list ArrayList<String[]> list = new ArrayList<String[]>(); if (arr1 != null && arr1.length != 0) { list.add(arr1); } if (arr2 != null && arr2.length != 0) { list.add(arr2); } if (arr3 != null && arr3.length != 0) { list.add(arr3); } // 动态生成二维数组 int count = 0; for (int i = 0; i < list.size(); i++) { arrTwo[count++] = list.get(i);// count++; } // 测试打印二维数组的每一行// printOne(arrTwo[0]);// printOne(arrTwo[1]);// printOne(arrTwo[2]);// printTwo(arrTwo); } catch (Exception e) { System.out.println("解析子项目出错!"); } return arrTwo; }}
//MainActivity中调用,实现二级列表ExpandableListview
package com.example.aa;import com.example.aa.R.string;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AbsListView;import android.widget.BaseExpandableListAdapter;import android.widget.ExpandableListAdapter;import android.widget.ExpandableListView;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);// requestWindowFeature(Window.FEATURE_NO_TITLE); final ExpandableListAdapter adapter = new BaseExpandableListAdapter() { //设置组视图的图片 int[] logos = new int[] { R.drawable.ic_launcher, R.drawable.ic_launcher,R.drawable.ic_launcher}; //设置组视图的显示文字 private String[] generalsTypes = new String[] { "宝一", "宝二", "宝三" }; //子视图显示文字 /*private String[][] generals = new String[][] { { "宝一孩儿1", "宝一孩儿2", "宝一孩儿3", "宝一孩儿4", "宝一孩儿5", "宝一孩儿6" }, { "宝二孩儿1", "宝二孩儿2", "宝二孩儿3", "宝二孩儿4", "宝二孩儿5", "宝二孩儿6" }, { "宝三孩儿1", "宝三孩儿2", "宝三孩儿3", "宝三孩儿4", "宝三孩儿5" } };*/ private String[][] generals=ExUtils.getItemChild(); //子视图图片 public int[][] generallogos = new int[][] { { R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher }, { R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher }, { R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher } }; //自己定义一个获得文字信息的方法 TextView getTextView() { AbsListView.LayoutParams lp = new AbsListView.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, 64); TextView textView = new TextView( MainActivity.this); textView.setLayoutParams(lp); textView.setGravity(Gravity.CENTER_VERTICAL); textView.setPadding(36, 0, 0, 0); textView.setTextSize(20); textView.setTextColor(Color.BLACK); return textView; } //重写ExpandableListAdapter中的各个方法 @Override public int getGroupCount() { // TODO Auto-generated method stub return generalsTypes.length; } @Override public Object getGroup(int groupPosition) { // TODO Auto-generated method stub return generalsTypes[groupPosition]; } @Override public long getGroupId(int groupPosition) { // TODO Auto-generated method stub return groupPosition; } @Override public int getChildrenCount(int groupPosition) { // TODO Auto-generated method stub return generals[groupPosition].length; } @Override public Object getChild(int groupPosition, int childPosition) { // TODO Auto-generated method stub return generals[groupPosition][childPosition]; } @Override public long getChildId(int groupPosition, int childPosition) { // TODO Auto-generated method stub return childPosition; } @Override public boolean hasStableIds() { // TODO Auto-generated method stub return true; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { // TODO Auto-generated method stub LinearLayout ll = new LinearLayout( MainActivity.this);// ll.setOrientation(0); ImageView logo = new ImageView(MainActivity.this); logo.setImageResource(logos[groupPosition]); logo.setPadding(50, 0, 0, 0); ll.addView(logo); TextView textView = getTextView(); textView.setTextColor(Color.BLACK); textView.setText(getGroup(groupPosition).toString()); ll.addView(textView); return ll; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { // TODO Auto-generated method stub LinearLayout ll = new LinearLayout( MainActivity.this);// ll.setOrientation(0); ImageView generallogo = new ImageView( MainActivity.this); generallogo .setImageResource(generallogos[groupPosition][childPosition]); ll.addView(generallogo); TextView textView = getTextView(); textView.setText(getChild(groupPosition, childPosition) .toString()); ll.addView(textView); return ll; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { // TODO Auto-generated method stub return true; } }; ExpandableListView expandableListView = (ExpandableListView) findViewById(R.id.list); expandableListView.setAdapter(adapter); //设置item点击的监听器 expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { @Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { Toast.makeText( MainActivity.this, "你点击了" + adapter.getChild(groupPosition, childPosition), Toast.LENGTH_SHORT).show(); return false; } }); }}感谢博主:http://blog.csdn.net/yhm2046/article/details/8601948
1 0
- android端获取网络数据添加到二级列表ExpandableListView
- Android ExpandableListView (二级列表)
- android ExpandableListView二级列表
- 二级列表ExpandableListView+gridview网络请求数据模拟商城展示
- ExpandableListView二级列表购物车,MVP获取数据
- Android::ExpandableListView二级列表控件的使用
- 二级列表ExpendableListView实现从网络上获取数据
- 二级列表ExpandableListView
- 二级列表ExpandableListView
- ExpandableListView 二级展开列表
- ExpandableListView二级列表
- 二级列表ExpandableListView
- 二级列表ExpandableListView
- ExpandableListView 二级列表
- 二级列表展示网络请求到的数据
- 二级列表展示网络数据
- ExpandableListView多级列表(二级列表)
- android 二级列表 expandablelistview 下标越界的解决
- Gson使用简记
- git分支操作整理
- concurrenthashmap 采用自动调整大小的数组锁,是不是效率更高一点呢?
- UE4启动器是否有办法添加本地版本
- 编译配置nginx-rtmp-moule
- android端获取网络数据添加到二级列表ExpandableListView
- iOS runtime运行机制
- 在UIView中抠透明区域
- android中文教程
- Android 颜色对照表
- 把redis安装到ubuntu-14.04.1-server
- url 编码(percentcode 百分号编码)
- Java方法
- VS2008或以上版本的ActiveX控件的测试工具(ActiveX Control Test Container)编译记录