您的位置:首页 > 理论基础 > 计算机网络

通过网络加载数据显示到ListView

2017-10-11 13:17 337 查看
API:
http://www.kuaidi100.com/query?type=yuantong&postid=11111111111


public class Main2Activity extends AppCompatActivity {
ListView listview;
BaseAdapter adapter;
List<HashMap> list=new ArrayList<>();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
getData();
initView();
}

private void getData() {
StringRequest stringRequest = new StringRequest(Request.Method.GET,
"http://www.kuaidi100.com/query?type=yuantong&postid=11111111111",
new com.android.volley.Response.Listener<String>(){
@Override
public void onResponse(String s) {
//打印请求返回结果
transform_data(s);
Log.e("zsw",s);
}
},new com.android.volley.Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError volleyError) {
Log.e("zsw","erro2");
}
});
//将StringRequest对象添加进RequestQueue请求队列中
Volley.newRequestQueue(getApplicationContext()).add(stringRequest);
}

private void transform_data(String s) {
try {
JSONObject mypack = new JSONObject(s);
JSONArray data=mypack.getJSONArray("data");
int datalength=data.length();
for (int i = 0; i <datalength ; i++) {
HashMap<String, String> hashmap=new HashMap<>();
JSONObject one=data.getJSONObject(i);
hashmap.put("time",one.getString("time"));
hashmap.put("context",one.getString("context"));
list.add(hashmap);
}
} catch (JSONException e) {
e.printStackTrace();
}
}

private void initView() {
listview = (ListView) findViewById(R.id.mylistview);
adapter = new MyAdapter();
listview.setAdapter(adapter);
}

private class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return list.size();
}

@Override
public Object getItem(int i) {
return list.get(i);
}

@Override
public long getItemId(int i) {
return i;
}

@Override
public View getView(int position, View convertView, ViewGroup viewGroup) {
ViewHolder holder;
if (convertView==null){
convertView=View.inflate(Main2Activity.this,R.layout.mylistview_item,null);
holder=new ViewHolder();
holder.text1=convertView.findViewById(R.id.tv_time);
holder.text2=convertView.findViewById(R.id.tv_context);
convertView.setTag(holder);
}
else {
holder= (ViewHolder) convertView.getTag();
}
holder.text1.setText((CharSequence) list.get(position).get("time"));
holder.text2.setText((CharSequence) list.get(position).get("context"));
return convertView;
}
}
static class ViewHolder{
TextView text1;
TextView text2;
}
}
总结:主要的点就是list里边存的是hasmap。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐