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/