网络数据

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.DialogInterface;

import android.content.Intent;

import android.content.IntentFilter;

import android.net.ConnectivityManager;

import android.net.NetworkInfo;

import android.os.AsyncTask;

import android.os.Handler;

import android.os.Message;

import android.provider.Settings;

import android.support.v4.view.ViewPager;

import android.support.v7.app.AlertDialog;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.widget.ImageView;

import android.widget.LinearLayout;

import android.widget.Toast;

import com.google.gson.Gson;

import java.io.BufferedReader;

import java.io.DataOutputStream;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.URL;

import java.util.ArrayList;

import java.util.List;

public class MainActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener, XListView.IXListViewListener {

    private ReceiverJt receiverJt;

    private ViewPager viewPager;

    private LinearLayout ll;

    //创建图片数组

    String[] imgs={"http://image.wufazhuce.com/Fu6o0fqKHsI_TjdpPX3N2Kc99vNP",

            "http://image.wufazhuce.com/FmDRnQ1XhReHRHB4jYqAPSx8htsP",

            "http://image.wufazhuce.com/FvVmWbqlle7jlUCTeozoval9NyBH",

            "http://image.wufazhuce.com/FuPgOcbGDD9__fyuCdPBXb5pbA1C"};

    //定义存放原点图片的集合

    List<ImageView> dot_list=new ArrayList<ImageView>();

    //网络地址

    String url="http://v.juhe.cn/toutiao/index?type=top";

    //String params="?key=c1885686ef47f19bcb45e39c4447e040";

 

    //自动轮播

    Handler handler=new Handler(){

        @Override

        public void handleMessage(Message msg) {

            super.handleMessage(msg);

            if(msg.what==100)

            {

                int c=viewPager.getCurrentItem();

                c++;

                viewPager.setCurrentItem(c);

 

            }

 

            handler.sendEmptyMessageDelayed(100,2000);

        }

    };

    private List<Bean.ResultBean.DataBean> list;

    private XListView xlv_list;

    private JsonAdapter jsonAdapter;

    private MySqlDao dao;

    private NetworkInfo info;

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

 

        initView();

        initDot();

        handler.sendEmptyMessageDelayed(100,2000);

 

        //实例化ReceiverJt

        receiverJt = new ReceiverJt();

        //动态注册

        registerReceiver(receiverJt, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));

    }

 

    /**

     * 初始化控件

     */

    private void initView() {

        dao = new MySqlDao(MainActivity.this);

        //xlv_list初始化放在设置header上边

        xlv_list = (XListView) findViewById(R.id.xlv_list);

 

        //设置header

        View v= LayoutInflater.from(this).inflate(R.layout.header_item,null);

        viewPager=v.findViewById(R.id.viewPager);

        ll=v.findViewById(R.id.ll);

        xlv_list.addHeaderView(v);

 

        viewPager.setOnPageChangeListener(this);

        ViewPagerAdapter vpAdapter=new ViewPagerAdapter(this);

        viewPager.setAdapter(vpAdapter);

 

        //xlist监听事件

        xlv_list.setXListViewListener(this);

        //支持刷新和加载更多

        xlv_list.setPullLoadEnable(true);

        xlv_list.setPullRefreshEnable(true);

    }

 

    /**

     * 画圆的方法

     */

    private void initDot() {

 

        for (int i = 0; i <imgs.length ; i++) {

            ImageView iv=new ImageView(this);

            if(i==0)

            {

                iv.setImageResource(R.drawable.red);

            }else{

                iv.setImageResource(R.drawable.blue);

            }

            LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(10,10);

            params.setMargins(10,5,10,5);

            ll.addView(iv,params);

            dot_list.add(iv);

        }

 

    }

    /**

     * ViewPager的点击事件

     */

    @Override

    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

    }

 

    /**

     * 设置圆点跟着图片滑动

     * @param position

     */

    @Override

    public void onPageSelected(int position) {

        for (int i = 0; i <dot_list.size() ; i++) {

            if(i==position%imgs.length)

            {

                dot_list.get(i).setImageResource(R.drawable.red);

            }else{

                dot_list.get(i).setImageResource(R.drawable.blue);

            }

        }

    }

 

    @Override

    public void onPageScrollStateChanged(int state) {

 

    }

 

    /**

     * 刷新

     */

    @Override

    public void onRefresh() {

        if(info==null)

        {

            xlv_list.setPullRefreshEnable(false);

            xlv_list.setPullLoadEnable(false);

            Toast.makeText(this, "请连接网络", Toast.LENGTH_SHORT).show();

        }

        jsonAdapter.notifyDataSetChanged();

        //停止刷新和加载

        xlv_list.stopLoadMore();

        xlv_list.stopRefresh();

    }

 

    @Override

    public void onLoadMore() {

        if(info==null)

        {

            xlv_list.setPullRefreshEnable(false);

            xlv_list.setPullLoadEnable(false);

            Toast.makeText(this, "请连接网络", Toast.LENGTH_SHORT).show();

        }

        list.addAll(list);

        //刷新适配器

        jsonAdapter.notifyDataSetChanged();

        //停止刷新和加载

        xlv_list.stopLoadMore();

        xlv_list.stopRefresh();

    }

 

    /**

     * 广播判断网络  记着是public

     */

    public class ReceiverJt extends BroadcastReceiver{

        @Override

        public void onReceive(Context context, Intent intent) {

            ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

            //得到网络连接状态

            info = manager.getActiveNetworkInfo();

            //处理逻辑   !=null 为有网状态

            if(info !=null){

                Toast.makeText(context, "有网络连接,做有网时的逻辑", Toast.LENGTH_SHORT).show();

                new MyAsyncTask().execute(url);

            }else{

                Toast.makeText(context, "无网络连接,做无网时的逻辑", Toast.LENGTH_SHORT).show();

                AlertDialog.Builder b=new AlertDialog.Builder(MainActivity.this);

                b.setMessage("进入设置界面");

                b.setPositiveButton("确定", new DialogInterface.OnClickListener() {

                    @Override

                    public void onClick(DialogInterface dialogInterface, int i) {

                        Intent intent=new Intent();

                        intent.setAction("android.net.wifi.PICK_WIFI_NETWORK");

                        startActivity(intent);

                    }

                });

                b.setNegativeButton("取消", new DialogInterface.OnClickListener() {

                    @Override

                    public void onClick(DialogInterface dialogInterface, int i) {

                    }

                });

                String json = dao.select();

                System.out.println("取消:select================="+json);

                getJson(json);

                b.create().show();

            }

        }

    }

 

    //动态注册销毁

    @Override

    protected void onDestroy() {

        super.onDestroy();

        //动态注册广播须要销毁

        unregisterReceiver(receiverJt);

    }

 

    /**

     * 异步加载网络数据

     */

    class MyAsyncTask extends AsyncTask<String,Integer,String>{

 

        //获取网络数据的操作

        @Override

        protected String doInBackground(String... strings) {

 

            //接收获取的json串

            StringBuffer result=new StringBuffer();

            try {

                URL uri=new URL(strings[0]);

                HttpURLConnection connection= (HttpURLConnection) uri.openConnection();

                //设置请求方法

                connection.setRequestMethod("POST");

                //获取输入输出流

                connection.setDoOutput(true);

                connection.setDoInput(true);

                //追加参数

                DataOutputStream dos=new DataOutputStream(connection.getOutputStream());

                //追加key值

                String params="&key=c1885686ef47f19bcb45e39c4447e040";

                dos.writeBytes(params);

                dos.flush();

                dos.close();

                //获取连接

                connection.connect();

                System.out.println("connection==========="+connection);

                if(200==connection.getResponseCode())

                {

                    InputStream inputStream=connection.getInputStream();

                    BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream));

                    String line=null;

                    while((line=reader.readLine())!=null)

                    {

                        result.append(line);

                    }

                    //调用数据库

                    dao.insert(result.toString());

                    String select = dao.select();

                    System.out.println("select============"+select);

                    System.out.println("json===================="+result);

                }

 

            } catch (Exception e) {

                e.printStackTrace();

            }

            return result.toString();

        }

 

        //获取完网络数据后的操作

        @Override

        protected void onPostExecute(String s) {

            super.onPostExecute(s);

            getJson(s);

        }

    }

 

    /**

     * 解析json串

     * @param s

     */

    private void getJson(String s) {

        Gson gson=new Gson();

        Bean bean = gson.fromJson(s, Bean.class);

        list = bean.getResult().getData();

        for (Bean.ResultBean.DataBean b: list) {

            System.out.println("bean=========="+b.getAuthor_name()+" "+b.getTitle()+" "+b.getThumbnail_pic_s());

 

        }

        //设置关联适配器

        jsonAdapter = new JsonAdapter(this, list);

        xlv_list.setAdapter(jsonAdapter);

    }

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值