二级列表数据从网络请求数据
来源:互联网 发布:我的购物车淘宝网登录 编辑:程序博客网 时间:2024/05/22 13:29
Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what == 1) { /*if (index == strings.size()) { index = 0; viewpager.setCurrentItem(index, false); } else {*/ viewpager.setCurrentItem(index);// } } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listview = (ExpandableListView) findViewById(R.id.listview); name = (EditText) findViewById(R.id.name); viewpager = (ViewPager) findViewById(R.id.viewpager);// rg = (RadioGroup) findViewById(R.id.group); rg = (LinearLayout) findViewById(R.id.group); strings = new ArrayList<String>(); strings.add("http://juheimg.oss-cn-hangzhou.aliyuncs.com/cookbook/t/1/115_465855.jpg"); strings.add("http://juheimg.oss-cn-hangzhou.aliyuncs.com/cookbook/t/1/345_384256.jpg"); strings.add("http://juheimg.oss-cn-hangzhou.aliyuncs.com/cookbook/t/1/424_621847.jpg"); strings.add("http://juheimg.oss-cn-hangzhou.aliyuncs.com/cookbook/t/1/575_686746.jpg");// 增加圆点 addRadioButton();// 设置ViewPager一次性加载几张图片 viewpager.setOffscreenPageLimit(strings.size()); viewpager.setAdapter(new GetAdapter()); // 滑动和点击事件 Lisetenear(); // 无限轮播 wuXian(); } // 增加圆点 private void addRadioButton() { for (int i = 0; i < strings.size(); i++) { View button = new View(MainActivity.this); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(40, 40); params.leftMargin = 10; params.rightMargin = 10; button.setLayoutParams(params); if (i == 0) { button.setBackgroundResource(R.drawable.shape); } else { button.setBackgroundResource(R.drawable.shape1); } rg.addView(button); } }// 无限轮播 private void wuXian() { new Timer().schedule(new TimerTask() { @Override public void run() { index++; /*Message msg = Message.obtain(); msg.what = 1; msg.obj = index; handler.sendMessage(msg);*/ handler.sendEmptyMessage(1); } }, 1000, 1000); }// 滑动和点击按钮事件 private void Lisetenear() { viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { for (int i = 0; i < strings.size(); i++) { View button = (View) rg.getChildAt(i); if (i == (position %strings.size())) { button.setBackgroundResource(R.drawable.shape); } else { button.setBackgroundResource(R.drawable.shape1); } } } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); /* rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) { for (int i = 0; i < strings.size(); i++) { RadioButton button = (RadioButton) rg.getChildAt(i); if (button.isChecked()) viewpager.setCurrentItem(i); } } });*/ rg.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { for (int i = 0; i < strings.size(); i++) { View button = (View) rg.getChildAt(i); final int finalI = i; button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { viewpager.setCurrentItem(finalI); } }); } } }); }// 搜索按钮的点击事件 public void btnSelect(View view) { new AsyncTaskUtils(new AsyncTaskUtils.SelectResout() { @Override public void OnclickResout(String string) { if (string != null) { Gson gson = new Gson(); MenuINfo json = gson.fromJson(string, MenuINfo.class); list = json.getResult().getData();// 二维数组增加数据// init();// 两种方法// 第一种不使用二维数组,直接使用List来得到数据 listview.setAdapter(new ExListViewAdapter(MainActivity.this,list));// 第二种就是使用了二维数组// listview.setAdapter(new ListViewAdapter()); } } }).execute("http://apis.juhe.cn/cook/query.php?key=26ef57b6568ddb188773d1c683879566&menu=" + name .getText().toString().trim()); } // 给二级列表增加数据 private void init() { groups = new String[list.size()]; for (int i = 0; i < list.size(); i++) { groups[i] = name.getText().toString() + "第" + (i + 1) + "种"; steps = list.get(i).getSteps(); } groupsImg = new Bitmap[list.size()]; for (int i = 0; i < list.size(); i++) { System.out.println("一级请求地址=========" + list.get(i).getAlbums().get(0)); final int finalI = i; new AsyncTask_Image(new AsyncTask_Image.setImagetListener() { @Override public void ImageOnclick(Bitmap bitmap) { groupsImg[finalI] = bitmap; } }).execute(list.get(i).getAlbums().get(0)); } child = new String[list.size()][steps.size()]; for (int i = 0; i < list.size(); i++) { for (int j = 0; j < steps.size(); j++) { System.out.println("子列表的内容" + steps.get(j).getStep()); child[i][j] = steps.get(j).getStep(); } } childImg = new Bitmap[list.size()][steps.size()]; for (int i = 0; i < list.size(); i++) { for (int j = 0; j < steps.size(); j++) { System.out.println("子列表的图片地址" + steps.get(j).getImg()); final int I = i; final int J = j; new AsyncTask_Image(new AsyncTask_Image.setImagetListener() { @Override public void ImageOnclick(Bitmap bitmap) { childImg[I][J] = bitmap; } }).execute(steps.get(j).getImg()); } } } class GetAdapter extends PagerAdapter { @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public Object instantiateItem(ViewGroup container, int position) { final ImageView imageView = new ImageView(MainActivity.this); new AsyncTask_Image(new AsyncTask_Image.setImagetListener() { @Override public void ImageOnclick(Bitmap bitmap) { if (bitmap != null) imageView.setImageBitmap(bitmap); else imageView.setImageResource(R.mipmap.ic_launcher); } }).execute(strings.get(position % strings.size())); container.addView(imageView); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } } class ListViewAdapter extends BaseExpandableListAdapter { @Override public int getGroupCount() { return groups.length; } @Override public int getChildrenCount(int groupPosition) { return child[groupPosition].length; } @Override public Object getGroup(int groupPosition) { return groups[groupPosition]; } @Override public Object getChild(int groupPosition, int childPosition) { return child[childPosition]; } @Override public long getGroupId(int groupPosition) { return groupPosition; } @Override public long getChildId(int groupPosition, int childPosition) { return childPosition; } @Override public boolean hasStableIds() { return false; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { if (convertView == null) { convertView = View.inflate(MainActivity.this, R.layout.group_item, null); } ImageView img = (ImageView) convertView.findViewById(R.id.img); TextView tv = (TextView) convertView.findViewById(R.id.textview); img.setImageBitmap(groupsImg[groupPosition]); tv.setText(groups[groupPosition]); return convertView; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { if (convertView == null) { convertView = View.inflate(MainActivity.this, R.layout.child_item, null); } ImageView img = (ImageView) convertView.findViewById(R.id.img); TextView tv = (TextView) convertView.findViewById(R.id.textview); img.setImageBitmap(childImg[groupPosition][childPosition]); tv.setText(child[groupPosition][childPosition]); return convertView; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return false; } }}
//自定义适配器
public class ExListViewAdapter extends BaseExpandableListAdapter { private Context context; private List<MenuINfo.ResultBean.DataBean> list; public ExListViewAdapter(Context context,List<MenuINfo.ResultBean.DataBean> list) { this.context = context; this.list = list; } @Override public int getGroupCount() { return list.size(); } @Override public int getChildrenCount(int groupPosition) { return list.get(groupPosition).getSteps().size(); } @Override public Object getGroup(int groupPosition) { return list.get(groupPosition).getAlbums().get(0); } @Override public Object getChild(int groupPosition, int childPosition) { return list.get(groupPosition).getSteps().get(childPosition); } @Override public long getGroupId(int groupPosition) { return groupPosition; } @Override public long getChildId(int groupPosition, int childPosition) { return childPosition; } @Override public boolean hasStableIds() { return false; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { if (convertView == null) { convertView = View.inflate(context, R.layout.group_item, null); } final ImageView img = (ImageView) convertView.findViewById(R.id.img); TextView tv = (TextView) convertView.findViewById(R.id.textview); tv.setText(list.get(groupPosition).getTitle()); new AsyncTask_Image(new AsyncTask_Image.setImagetListener() { @Override public void ImageOnclick(Bitmap bitmap) { img.setImageBitmap(bitmap); } }).execute(list.get(groupPosition).getAlbums().get(0)); return convertView; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { if (convertView == null) { convertView = View.inflate(context, R.layout.child_item, null); } final ImageView img = (ImageView) convertView.findViewById(R.id.img); TextView tv = (TextView) convertView.findViewById(R.id.textview); tv.setText(list.get(groupPosition).getSteps().get(childPosition).getStep()); new AsyncTask_Image(new AsyncTask_Image.setImagetListener() { @Override public void ImageOnclick(Bitmap bitmap) { if (bitmap != null) img.setImageBitmap(bitmap); else img.setImageResource(R.mipmap.ic_launcher); } }).execute(list.get(groupPosition).getSteps().get(childPosition).getImg()); return convertView; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return false; }}自定义工具类读取网络请求返回的InputStream
public class StringTools { public static String GetString(InputStream is) { try { ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] b = new byte[1024]; while (true) { int m = is.read(b); if (m == -1) break; bos.write(b, 0, m); } return bos.toString(); } catch (IOException e) { e.printStackTrace(); } return null; }public class AsyncTask_Image extends AsyncTask<String, Void, Bitmap> { public interface setImagetListener { void ImageOnclick(Bitmap bitmap); } public setImagetListener imagetlistener; public AsyncTask_Image(setImagetListener imagetlistener) { this.imagetlistener = imagetlistener; } @Override protected void onPostExecute(Bitmap bitmap) { super.onPostExecute(bitmap); imagetlistener.ImageOnclick(bitmap); } @Override protected Bitmap doInBackground(String... params) { try { URL url = new URL(params[0]); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { InputStream is = connection.getInputStream(); return BitmapFactory.decodeStream(is); } } catch (IOException e) { e.printStackTrace(); } return null; }}异步加载网络请求数据,自定义工具类public class AsyncTask_Image extends AsyncTask<String, Void, Bitmap> { public interface setImagetListener { void ImageOnclick(Bitmap bitmap); } public setImagetListener imagetlistener; public AsyncTask_Image(setImagetListener imagetlistener) { this.imagetlistener = imagetlistener; } @Override protected void onPostExecute(Bitmap bitmap) { super.onPostExecute(bitmap); imagetlistener.ImageOnclick(bitmap); } @Override protected Bitmap doInBackground(String... params) { try { URL url = new URL(params[0]); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { InputStream is = connection.getInputStream(); return BitmapFactory.decodeStream(is); } } catch (IOException e) { e.printStackTrace(); } return null; }}网络请求数据自定义类public class AsyncTaskUtils extends AsyncTask<String, Void, String> { public interface SelectResout { void OnclickResout(String string); } public SelectResout selectresout; public AsyncTaskUtils(SelectResout selectresout) { this.selectresout = selectresout; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); System.out.println("查询结果:" + s); selectresout.OnclickResout(s); } @Override protected String doInBackground(String... params) { try { URL url = new URL(params[0]); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { InputStream is = connection.getInputStream(); return StringTools.GetString(is); } } catch (IOException e) { e.printStackTrace(); } return null; }}异步加载图片
public class AsyncTask_Image extends AsyncTask<String, Void, Bitmap> { public interface setImagetListener { void ImageOnclick(Bitmap bitmap); } public setImagetListener imagetlistener; public AsyncTask_Image(setImagetListener imagetlistener) { this.imagetlistener = imagetlistener; } @Override protected void onPostExecute(Bitmap bitmap) { super.onPostExecute(bitmap); imagetlistener.ImageOnclick(bitmap); } @Override protected Bitmap doInBackground(String... params) { try { URL url = new URL(params[0]); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { InputStream is = connection.getInputStream(); return BitmapFactory.decodeStream(is); } } catch (IOException e) { e.printStackTrace(); } return null; }}
阅读全文
0 0
- 二级列表数据从网络请求数据
- 二级列表展示网络请求到的数据
- 二级列表ExpandableListView+gridview网络请求数据模拟商城展示
- 二级列表ExpendableListView实现从网络上获取数据
- 二级列表展示网络数据
- 从网络请求数据
- OkHttp请求网络数据二级列表实现购物车全选,单选,总价
- MVP+OKhttp+拦截器+RecyclerView+自定义view 实现请求网络数据的二级列表购物车
- Android----仿京东购物车(二级列表,mvp请求数据)
- 模仿京东购物车(二级列表,mvp请求数据)
- MVP+recyclerview网络请求列表数据
- android端获取网络数据添加到二级列表ExpandableListView
- RecyclerView条目跳转+SpringView数据刷新加载+MVP+OKhttp+拦截器+自定义view 实现请求网络数据的二级列表购物车
- 常见从网络上请求数据流程
- 通过从网络请求得到的数据
- 从网络请求数据添加到数据库
- 从网络请求数据,实现注册登录
- 从网络请求数据保存到数据库。
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
- x264源代码简单分析:x264_slice_write()
- Java反射的简单应用
- 深入浅出JMS(二)--ActiveMQ简单介绍以及安装
- PAT-乙级 1016.部分A+B(15)
- 二级列表数据从网络请求数据
- 多线程基础知识
- WEB集群与负载均衡
- Java精选笔记_JSP技术
- Servlet 编写过滤器
- Java eclipse乱码解决问题
- Android:最全面的 Webview 详解
- php配置项目时候的小技巧
- WPF 值转换器