Android HttpUrlConnection获取数据

package com.bwie.fragment;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;

import com.bwie.Week1Demo1.R;
import com.bwie.adapter.MyListAdapter;
import com.bwie.adapter.MyPagerAdapter;
import com.bwie.bean.PhoneData;
import com.google.gson.Gson;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;

/**
 * Created by McGrady on 2018/7/7.
 */

public class Fragment1 extends Fragment {

    @InjectView(R.id.view_pager)
    ViewPager view_pager;
    @InjectView(R.id.list_view)
    ListView list_view;

    private MyPagerAdapter pagerAdapter;
    private List<PhoneData.DataBean> data;
    private List<String> text_list;
    private Handler handler = new Handler() {


        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);

            switch (msg.what) {

                case 0:
                    int i = view_pager.getCurrentItem();
                    i++;
                    view_pager.setCurrentItem(i);
                    handler.removeCallbacksAndMessages(null);
                    handler.sendEmptyMessageDelayed(0, 1000);
                    break;

                case 1:
                    String json = (String) msg.obj;
                    Gson gson = new Gson();
                    PhoneData phoneData = gson.fromJson(json, PhoneData.class);
                    data = phoneData.getData();
                    for (int j = 0; j < data.size(); j++) {
                        Log.i("aaa", data.get(j).getContent());
                    }
                    myListAdapter = new MyListAdapter(data, getActivity());
                    list_view.setAdapter(myListAdapter);
                    handler.removeCallbacksAndMessages(null);
                    break;

                default:

                    break;

            }

        }
    };
    private MyListAdapter myListAdapter;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment1, container, false);

        ButterKnife.inject(this, view);
        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);


        ArrayList<Integer> img_list = new ArrayList<>();
        img_list.add(R.mipmap.ic_launcher);
        img_list.add(R.mipmap.ic_launcher);
        img_list.add(R.mipmap.ic_launcher);

        pagerAdapter = new MyPagerAdapter(img_list, getActivity());
        view_pager.setAdapter(pagerAdapter);
        view_pager.setCurrentItem(img_list.size() * 1000);
        handler.sendEmptyMessageDelayed(0, 1000);


        getServerJsonData();

        list_view.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                builder.setTitle("确定更新吗");
                builder.setMessage(data.get(position).getContent());
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(getActivity(),"正在后台更新中。。。",1).show();
                    }
                });
                builder.setNegativeButton("取消",null);

                builder.show();
            }


        });

    }

    private void getServerJsonData() {

        new Thread() {

            @Override
            public void run() {
                super.run();

                String path = "http://www.yulin520.com/a2a/forum/allTypeList?sign=376C5BFC22179A1B8FF3A86D4588B29F&pageSize=10&ts=1877785007&forumType=0&page=1";

                try {
                    URL url = new URL(path);
                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                    connection.setConnectTimeout(5000);
                    connection.setReadTimeout(5000);
                    connection.setRequestMethod("GET");
                    if (connection.getResponseCode() == 200) {

                        InputStream inputStream = connection.getInputStream();
                        ByteArrayOutputStream bos = new ByteArrayOutputStream();
                        byte[] buffer = new byte[1024];
                        int len = 0;
                        while ((len = inputStream.read(buffer)) != -1) {

                            bos.write(buffer, 0, len);

                        }

                        inputStream.close();
                        ;
                        bos.close();
                        String json = bos.toString();

                        Log.i("xxx", json);

                        Message message = Message.obtain();
                        message.what = 1;
                        message.obj = json;
                        handler.sendMessage(message);


                    }

                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }.start();

    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        ButterKnife.reset(this);
    }



}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值