Handler和子线程解析接口

先在xml界面设置两个控件一个按钮和一个listview
在这里插入图片描述
在原页面

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //第一步找控件
        Button button= findViewById(R.id.button);
        //第二步点击事件
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //第三步开启子线程
            new Thread(){
                @Override
                public void run() {
                    super.run();
                    //在这里写耗时操作(请求网络数据)
                    //第四步:判断网络状态
                    boolean networkConnected = Http.isNetworkConnected(MainActivity.this);
                    //判断有没有网
                    if (networkConnected){
                        //有网就请求数据
                        String get = Http.requestHttpGet("http://api.expoon.com/AppNews/getNewsList/type/1/p/1");
                        //记得导包
                        Gson gson=new Gson();
                        //bean类别忘了创建了
                        JsonBean bean = gson.fromJson(get, JsonBean.class);
                        //把数据传递给主线程
                        Message message=new Message();
                        message.what=0;
                        message.obj=bean;
                        handler.sendMessage(message);
                    }else{
                       handler.sendEmptyMessageDelayed(1,0);
                    }

                }
            }.start();

            }
        });

    }

  
}

新建一个主线程

  Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
        switch (msg.what){
            case 0:
                JsonBean bean= (JsonBean) msg.obj;
                Toast.makeText(MainActivity.this,""+bean.toString(),Toast.LENGTH_LONG).show();

                break;
            case 1:
                //没网就提示用户 没网
                Toast.makeText(MainActivity.this,"兄嘚,没网啊?",Toast.LENGTH_LONG).show();
                break;
        }
        }
    };

注:接口的网址可以在下面的网址里调取!!!
https://www.juhe.cn/

猜你喜欢

转载自blog.csdn.net/qq_42970131/article/details/85339910