Handler和子執行緒解析介面
阿新 • • 發佈:2018-12-30
先在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/