1. 程式人生 > >android客戶端+JAVA WEB伺服器實現json資料解析

android客戶端+JAVA WEB伺服器實現json資料解析

import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; public class MainActivity extends AppCompatActivity implements Runnable { List<HashMap<String,Object>> data; private static final int TAG =0X1;//用於Handler中的非同步處理標誌 Thread thread = null;//宣告執行緒,用於執行NewsServer中的網路訪問
Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what){ case TAG: SimpleAdapter simpleAdapter = new SimpleAdapter(MainActivity.this,data,R.layout.item,new String[]{"title"
,"timelength"},new int[]{R.id.title,R.id.timelength}); listview.setAdapter(simpleAdapter); break; } } }; @BindView(R.id.btn_refresh) Button btnRefresh; @BindView(R.id.listview) ListView listview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this);//這裡使用了ButterKnife元件來初始化元件和繫結id,不懂得自行百度 } @OnClick(R.id.btn_refresh) public void onClick(View view) { switch (view.getId()) { case R.id.btn_refresh: thread = new Thread(this); thread.start(); break; } } @Override public void run() { String length = getResources().getString(R.string.timelength); List<News> news = NewsService.getJsonLastNews();//這裡必須另起一個執行緒訪問,不能在主執行緒中訪問 data = new ArrayList<>(); for(News news1:news){ HashMap<String,Object> item = new HashMap<>(); item.put("id",news1.getId()); item.put("title",news1.getTitile()); item.put("timelength",length+": "+news1.getTimelength()); data.add(item); } Message msg = new Message(); msg.what=TAG; handler.sendMessage(msg);//通知元件更新介面 } }