httpurlconnection_vegetables(httpurlconnection请求方式获取菜谱)

 package com.example.httpurlconnection_vegetables;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.List;

import com.example.httpurlconnection_vegetables.bean.Data;
import com.example.httpurlconnection_vegetables.bean.Result;
import com.example.httpurlconnection_vegetables.bean.Root;
import com.example.httpurlconnection_vegetables.bean.Steps;
import com.google.gson.Gson;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity {
    private EditText ed;
    private Button button;
    private ListView lv;
    private String path = "http://apis.juhe.cn/cook/query?";
    private String key = "87395f5d39def90a90ffd6c0e8e95bef";
    Message msg=Message.obtain();
    private Handler handler = new Handler() {

        private List<Steps> list_steps;

        @SuppressWarnings("unchecked")
        public void handleMessage(android.os.Message msg) {
            
            if (msg.arg1 == 1) {
                Toast.makeText(MainActivity.this, "输入为空!请输入菜名:", 3).show();
            } else {
                Root json = (Root) msg.obj;
                Result result = json.getResult();
                List<Data> list_data = result.getData();                    
                if (list_data.equals(null)) {
                    Toast.makeText(MainActivity.this, "没有数据显示!", 3).show();
                } else {
                    for (Data data : list_data) {
                        list_steps = data.getSteps();
                        lv.setAdapter(new Myadaper(MainActivity.this,
                                list_data, list_steps));

                    }
                }
            }

        };
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 寻找控件
        findwidget();
        // 查询点事件
        button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                new Thread() {
                    public void run() {
                        // 获取ed的文本内容
                        String info = ed.getText().toString();
                        // 转换成16进制码
                        try {
                            if (info.length()<1) {
                                
                                msg.arg1 = 1;
                                handler.sendMessage(msg);
                            } else {
                                String encode = URLEncoder
                                        .encode(info, "UTF-8");

                                getdata(encode);
                            }

                        } catch (UnsupportedEncodingException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }

                    };
                }.start();

            }

        });

    }

    // 从网络获取资源
    public void getdata(String encode) {

        try {
            // 拼接地址
            path = path + "menu=" + encode + "&key=" + key;

            URL url = new URL(path);// 获urlUI对象
            HttpURLConnection huc = (HttpURLConnection) url.openConnection();// 获得连接网络的UI对象
            huc.setConnectTimeout(5000);// 设置请求超时
            huc.setReadTimeout(5000);// 设置读超时
            huc.setRequestMethod("GET");
            huc.connect();// 获得连接网络

            if (huc.getResponseCode() == 200) {

                System.out.println("连接成功");
                // 获得输入流
                InputStream inputStream = huc.getInputStream();
                // 把输入流包装成缓存流
                BufferedReader br = new BufferedReader(new InputStreamReader(
                        inputStream, "UTF-8"));

                String str;// 定义字符串
                StringBuffer sbf = new StringBuffer();

                while ((str = br.readLine()) != null) {// 循环读取
                    sbf.append(str);
                }
                String data = sbf.toString();
                Gson gson = new Gson();
                Root json = gson.fromJson(data, Root.class);
                Message msg = Message.obtain();
                msg.obj = json;
                handler.sendMessage(msg);
            } else {

                System.out.println(huc.getResponseCode() + "");
                System.out.println("获取失败");
            }

        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

    // 寻找控件
    private void findwidget() {
        ed = (EditText) findViewById(R.id.editText1);
        button = (Button) findViewById(R.id.button1);
        lv = (ListView) findViewById(R.id.listView1);

    }

}



-----------------------------------------------------------------------


package com.example.httpurlconnection_vegetables;

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import com.example.httpurlconnection_vegetables.bean.Data;
import com.example.httpurlconnection_vegetables.bean.Steps;

import android.R.layout;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.sax.StartElementListener;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.webkit.WebView.FindListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.TextView;

public class Myadaper extends BaseAdapter implements ListAdapter {
    private Bitmap bm;
    private MainActivity mainActivity;
    private List<Data> list_data;
    private List<Steps> list_steps;
    private List<String> list_son = new ArrayList<String>();
    private List<String> list_img = new ArrayList<String>();

    public Myadaper(MainActivity mainActivity, List<Data> list_data,
            List<Steps> list_steps) {
        this.mainActivity = mainActivity;
        // TODO Auto-generated constructor stub
        this.list_data = list_data;
        this.list_steps = list_steps;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return list_data.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        ViewHolder vo;

        if (convertView == null) {
            vo = new ViewHolder();
            convertView = LayoutInflater.from(mainActivity).inflate(
                    R.layout.l1, null);

            vo.textView1_title = (TextView) convertView
                    .findViewById(R.id.textView1_title);
            vo.textView2_tags = (TextView) convertView
                    .findViewById(R.id.textView2_tags);
            vo.textView3_imtro = (TextView) convertView
                    .findViewById(R.id.textView3_imtro);
            vo.textView4_ingredients = (TextView) convertView
                    .findViewById(R.id.textView4_ingredients);
            vo.textView5_burden = (TextView) convertView
                    .findViewById(R.id.textView5_burden);
            vo.button = (Button) convertView.findViewById(R.id.button1_into);
            vo.img = (ImageView) convertView.findViewById(R.id.imageView1);
            convertView.setTag(vo);
        } else {
            vo = (ViewHolder) convertView.getTag();
        }
        vo.textView1_title.setText(list_data.get(position).getTitle());
        vo.textView2_tags.setText(list_data.get(position).getTags());
        vo.textView3_imtro.setText(list_data.get(position).getImtro());
        vo.textView4_ingredients.setText(list_data.get(position)
                .getIngredients());
        vo.textView5_burden.setText(list_data.get(position).getBurden());
        vo.img.setImageBitmap(bm);
        new Thread() {

            private InputStream inputStream;

            public void run() {

                try {
                    List<String> albums = list_data.get(position).getAlbums();

                    for (String string : albums) {
                        URL url = new URL(string);
                        inputStream = url.openStream();
                        bm = BitmapFactory.decodeStream(inputStream);
                    }
                } catch (MalformedURLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            };
        }.start();

        // 查看详情点击事件
        vo.button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // 把集合拆了
                for (Steps ls : list_steps) {
                    String img = ls.getImg();
                    String step = ls.getStep();
                    list_img.add(img);
                    list_son.add(step);
                }
                Intent intent = new Intent(mainActivity, ShowActivity.class);
                intent.putStringArrayListExtra("list",
                        (ArrayList<String>) list_son);
                intent.putStringArrayListExtra("list_img",
                        (ArrayList<String>) list_img);
                mainActivity.startActivity(intent);
            }
        });

        return convertView;
    }

    class ViewHolder {
        TextView textView1_title;
        TextView textView2_tags;
        TextView textView3_imtro;
        TextView textView4_ingredients;
        TextView textView5_burden;
        Button button;
        ImageView img;
    }
}
------------------------------------------------------------------------
package com.example.httpurlconnection_vegetables;

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

public class ShowActivity extends Activity {
    private ListView lv_show;
    private ArrayList<String> list;
    private ArrayList<String> list_img;
    private Bitmap bm;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show);
        lv_show = (ListView) findViewById(R.id.listView1_show);
        Intent intent = getIntent();
        list = intent.getStringArrayListExtra("list");
        list_img = intent.getStringArrayListExtra("list_img");

        lv_show.setAdapter(new Myadapter());

    }

    class Myadapter extends BaseAdapter {

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return list.size();
        }

        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return 0;
        }

        @Override
        public View getView(final int position, View convertView,
                ViewGroup parent) {
            // TODO Auto-generated method stub

            final ViewHIlder vo;
            if (convertView == null) {
                vo = new ViewHIlder();
                convertView = LayoutInflater.from(ShowActivity.this).inflate(
                        R.layout.l2_show, null);
                vo.tv_show = (TextView) convertView
                        .findViewById(R.id.textView1_show);
                vo.img_show = (ImageView) convertView
                        .findViewById(R.id.imageView1_show);
                convertView.setTag(vo);

            } else {
                vo = (ViewHIlder) convertView.getTag();
            }
            vo.tv_show.setText(list.get(position));

            new Thread() {

                public void run() {
                    URL url;
                    try {
                        url = new URL(list_img.get(position));
                        InputStream inputstream = url.openStream();
                        bm = BitmapFactory.decodeStream(inputstream);

                    } catch (MalformedURLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

                };
            }.start();

            vo.img_show.setImageBitmap(bm);
            return convertView;
        }
    }

    class ViewHIlder {
        TextView tv_show;
        ImageView img_show;
    }

}
-----------------------------------------------------------------------------------------
package com.example.httpurlconnection_vegetables.bean;

public class Root {
    @Override
    public String toString() {
        return "Root [resultcode=" + resultcode + ", reason=" + reason
                + ", result=" + result + ", error_code=" + error_code + "]";
    }

    private String resultcode;

    private String reason;

    private Result result;

    private int error_code;

    public void setResultcode(String resultcode) {
        this.resultcode = resultcode;
    }

    public String getResultcode() {
        return this.resultcode;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public String getReason() {
        return this.reason;
    }

    public void setResult(Result result) {
        this.result = result;
    }

    public Result getResult() {
        return this.result;
    }

    public void setError_code(int error_code) {
        this.error_code = error_code;
    }

    public int getError_code() {
        return this.error_code;
    }

}
----------------------------------------------------------------------
package com.example.httpurlconnection_vegetables.bean;
import java.util.List;
public class Data {
@Override
    public String toString() {
        return "Data [id=" + id + ", title=" + title + ", tags=" + tags
                + ", imtro=" + imtro + ", ingredients=" + ingredients
                + ", burden=" + burden + ", albums=" + albums + ", steps="
                + steps + "]";
    }
private String id;

private String title;

private String tags;

private String imtro;

private String ingredients;

private String burden;

private List<String> albums ;

private List<Steps> steps ;

public void setId(String id){
this.id = id;
}
public String getId(){
return this.id;
}
public void setTitle(String title){
this.title = title;
}
public String getTitle(){
return this.title;
}
public void setTags(String tags){
this.tags = tags;
}
public String getTags(){
return this.tags;
}
public void setImtro(String imtro){
this.imtro = imtro;
}
public String getImtro(){
return this.imtro;
}
public void setIngredients(String ingredients){
this.ingredients = ingredients;
}
public String getIngredients(){
return this.ingredients;
}
public void setBurden(String burden){
this.burden = burden;
}
public String getBurden(){
return this.burden;
}
public void setAlbums(List<String> albums){
this.albums = albums;
}
public List<String> getAlbums(){
return this.albums;
}
public void setSteps(List<Steps> steps){
this.steps = steps;
}
public List<Steps> getSteps(){
return this.steps;
}

}
--------------------------------------------------------------------------

package com.example.httpurlconnection_vegetables.bean;

import java.util.List;

public class Result {
    @Override
    public String toString() {
        return "Result [data=" + data + ", totalNum=" + totalNum + ", pn=" + pn
                + ", rn=" + rn + "]";
    }

    private List<Data> data;

    private String totalNum;

    private int pn;

    private int rn;

    public void setData(List<Data> data) {
        this.data = data;
    }

    public List<Data> getData() {
        return this.data;
    }

    public void setTotalNum(String totalNum) {
        this.totalNum = totalNum;
    }

    public String getTotalNum() {
        return this.totalNum;
    }

    public void setPn(int pn) {
        this.pn = pn;
    }

    public int getPn() {
        return this.pn;
    }

    public void setRn(int rn) {
        this.rn = rn;
    }

    public int getRn() {
        return this.rn;
    }

}
----------------------------------------------------------------

package com.example.httpurlconnection_vegetables.bean;

public class Steps {
    @Override
    public String toString() {
        return "Steps [img=" + img + ", step=" + step + "]";
    }

    private String img;

    private String step;

    public void setImg(String img) {
        this.img = img;
    }

    public String getImg() {
        return this.img;
    }

    public void setStep(String step) {
        this.step = step;
    }

    public String getStep() {
        return this.step;
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值