多个数据请求嵌套
来源:互联网 发布:保健品可以网络销售 编辑:程序博客网 时间:2024/06/05 17:08
//公用的网络请求工具类
package bawei.com.Test;import android.os.Message;import android.support.v7.app.AppCompatActivity;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;/** * Created by asus on 2017/6/9. */public abstract class BaseActivity extends AppCompatActivity{ private android.os.Handler handler = new android.os.Handler(){ public void handleMessage(Message msg){ handlerMsg(msg); } }; public abstract void handlerMsg(Message msg); public void loadData(String UrlPath){ try { URL url = new URL(UrlPath); HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection(); urlConnection.connect(); if(urlConnection.getResponseCode() == 200){ InputStream in = urlConnection.getInputStream(); byte[] buff = new byte[1024]; int len = -1; StringBuffer sb = new StringBuffer(); while ((len = in.read(buff)) != -1){ sb.append(new String(buff,0,len,"UTF-8")); } Message msg = Message.obtain(); msg.what = 1; msg.obj = sb.toString(); handler.sendMessage(msg); } urlConnection.disconnect(); } catch (Exception e) { e.printStackTrace(); } }}
//第一次请求
package bawei.com.Test;import android.content.Intent;import android.os.Bundle;import android.os.Message;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.ListView;import com.google.gson.Gson;import java.util.ArrayList;import java.util.List;import bawei.com.Test.been.ClassifyData;public class MainActivity extends BaseActivity { private ListView lv; private List<String> listTitle; private List<ClassifyData.TngouBean> list; private final String urlPath = "http://www.tngou.net/api/cook/classify"; private ArrayAdapter<String> adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (ListView)findViewById(R.id.listview); listTitle = new ArrayList<String>(); adapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_expandable_list_item_1,listTitle); lv.setAdapter(adapter); lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { ClassifyData.TngouBean bean = list.get(position); int classId = bean.getId(); Intent intent = new Intent(MainActivity.this,Two_Activity.class); intent.putExtra("id",classId); startActivity(intent); } }); new Thread(){ @Override public void run() { loadData(urlPath); } }.start(); } @Override public void handlerMsg(Message msg) { Gson gson = new Gson(); ClassifyData data = gson.fromJson(msg.obj.toString(),ClassifyData.class); list = data.getTngou(); for (ClassifyData.TngouBean bean : list){ listTitle.add(bean.getTitle()); } adapter.notifyDataSetChanged(); }}
//第二次请求
package bawei.com.Test;import android.content.Intent;import android.os.Bundle;import android.os.Message;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import com.bumptech.glide.Glide;import com.google.gson.Gson;import java.util.ArrayList;import java.util.List;import bawei.com.Test.been.Two_been;public class Two_Activity extends BaseActivity { private int id; private String urlPath = "http://www.tngou.net/api/cook/list?rows=30&id="; private List<Two_been.TngouBean> list; private MyAdapter adapter; private ListView lv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_two_); lv = (ListView)findViewById(R.id.two_listview); Intent intent = getIntent(); id = intent.getIntExtra("id",0); list = new ArrayList<>(); adapter = new MyAdapter(); lv.setAdapter(adapter); lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Two_been.TngouBean bean = list.get(position); int classId = bean.getId(); Intent intent1 = new Intent(Two_Activity.this,Show_Activity.class); intent1.putExtra("id",classId); startActivity(intent1); } }); new Thread(){ @Override public void run() { loadData(urlPath+id); } }.start(); } @Override public void handlerMsg(Message msg) { Gson gson = new Gson(); Two_been been = gson.fromJson(msg.obj.toString(),Two_been.class); list.addAll(been.getTngou()); adapter.notifyDataSetChanged(); } class MyAdapter extends BaseAdapter{ @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if(convertView == null) { convertView = View.inflate(Two_Activity.this,R.layout.two_listview,null); holder = new ViewHolder(); holder.title2 = (TextView)convertView.findViewById(R.id.title2); holder.food2 = (TextView)convertView.findViewById(R.id.food2); holder.image2 = (ImageView)convertView.findViewById(R.id.image2); convertView.setTag(holder); }else{ holder = (ViewHolder)convertView.getTag(); } Two_been.TngouBean bean = list.get(position); holder.title2.setText(bean.getName()); holder.food2.setText(bean.getFood()); Glide.with(Two_Activity.this).load("http://tnfs.tngou.net/image"+bean.getImg()).into(holder.image2); return convertView; } class ViewHolder{ TextView title2,food2; ImageView image2; } }}//第三次用网页进行展示
package bawei.com.Test;import android.content.Intent;import android.os.Bundle;import android.os.Message;import android.webkit.WebView;import org.json.JSONException;import org.json.JSONObject;/** * Created by asus on 2017/6/11. */public class Show_Activity extends BaseActivity{ private WebView webView; private final String urlPath = "http://www.tngou.net/api/cook/show?id="; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.show_xml); webView = (WebView)findViewById(R.id.webview); Intent intent = getIntent(); final int id = intent.getIntExtra("id",0); new Thread(){ @Override public void run() { loadData(urlPath+id); } }.start(); } @Override public void handlerMsg(Message msg) { try { JSONObject json = new JSONObject(msg.obj.toString()); String url = json.getString("url"); webView.loadUrl(url); } catch (JSONException e) { e.printStackTrace(); } }}
//注意:
切记一定要进行网络请求权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
阅读全文
0 0
- 多个数据请求嵌套
- 使用嵌套pair存储多个关联数据
- Vue 路由嵌套、数据请求、组件
- 多个Fragment嵌套
- ajax开发:Promise解决多个异步Ajax请求导致的代码嵌套问题
- fiddler导出多个请求返回数据的方法
- 在html中使用Vue 路由嵌套-实现数据请求
- ScrollView嵌套多个ListView
- ScrollView嵌套多个ListView
- 多个Select语句嵌套
- ScrollView嵌套多个ListView
- CoordinatorLayout嵌套多个Recyclerview
- Form 表单实现多个Action 请求,将表单数据提交到不同请求
- iOS dispatch group dispatch_group_notify 多线程等待 多个数据请求处理 异步请求
- 解决ScrollView里嵌套多个RecyclerView时,RecyclerView数据显示不全的问题
- 循环里面嵌套一个异步请求,所有循环执行完毕后再返回请求的数据
- Android Fragment嵌套ViewPager,ViewPager嵌套多个Fragment
- Android Fragment嵌套ViewPager,ViewPager嵌套多个Fragment
- lua的代码块概念
- 全新的Kafka controller
- Java中Synchronized和Lock的区别
- Linux 用户与用户组
- 简单状态机BitFSM
- 多个数据请求嵌套
- HDU 第二章
- Spark快速大数据分析-第一和第二章
- android 模仿设置界面 A B C 分组
- IOS UTI
- 密码学(Crypto)一些在线解密网站
- 软考新思维--2017年上半年信息系统项目管理师上午试题分析与答案(试题46-50题)
- Lua基础(5)--Lua中的变量
- 深度卷积神经网络TensorFlow GPU实现