Android ListView使用方法,处理Json数据
2011-09-02 14:41
495 查看
[转自]http://blog.csdn.net/woshisap/article/details/6621571
需要注意的事,ListView需要一个显示Item的layout, 上面第73行的R.layout.item就是这个东西。第75行的R.id...也是这个layout里面的控件的id。
package cn.capinfotech.json; import java.net.URI; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import org.json.JSONArray; import org.json.JSONObject; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.Toast; public class MainActivity extends Activity { private static final String TAG = "MainActivity"; private List<HashMap<String, Object>> videos = null; private HashMap<String, Object> video = null; private ListView listView = null; private static String url = "http://10.0.2.2:8088/Struts2_sxt/getjson.action"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); listView = (ListView)findViewById(R.id.videos); getPDAServerData(url); } private void getPDAServerData(String url) { HttpClient client = new DefaultHttpClient(); //提拱默认的HttpClient实现 HttpPost request; try { request = new HttpPost(new URI(url)); HttpResponse response = client.execute(request); // 判断请求是否成功 if (response.getStatusLine().getStatusCode() == 200) { //200表示请求成功 HttpEntity entity = response.getEntity(); if (entity != null) { String out = EntityUtils.toString(entity, "UTF-8"); Log.i(TAG, out); JSONArray jsonArray = new JSONArray(out); videos = new ArrayList<HashMap<String, Object>>(); for(int i = 0; i<jsonArray.length(); i++) { JSONObject jsonObject = (JSONObject) jsonArray.get(i); int id = jsonObject.getInt("id"); String name = jsonObject.getString("title"); int timelength = jsonObject.getInt("timelength"); video = new HashMap<String, Object>(); video.put("id", id); video.put("name", name); video.put("timelength", "时长为:" + timelength); videos.add(video); } SimpleAdapter adapter = new SimpleAdapter(this, videos, R.layout.item, new String[]{"name", "timelength"}, new int[]{R.id.title, R.id.timelength} ); listView.setAdapter(adapter); } } } catch(Exception e) { e.printStackTrace(); Log.e(TAG, e.toString()); Toast.makeText(MainActivity.this, "获取数据失败", Toast.LENGTH_LONG).show(); } } }
需要注意的事,ListView需要一个显示Item的layout, 上面第73行的R.layout.item就是这个东西。第75行的R.id...也是这个layout里面的控件的id。
相关文章推荐
- SpringMVC(27):json数据的传递处理的示例(实现功能:使用jQuery框架的ajax()方法实现用户信息查看)
- 使用getJSON方法读取json文件数据并处理
- Json数据处理:使用GSON处理数据的方法
- 爬虫 Http请求,urllib2获取数据,第三方库requests获取数据,BeautifulSoup处理数据,使用Chrome浏览器开发者工具显示检查网页源代码,json模块的dumps,loads,dump,load方法介绍
- struts2学习笔记--使用struts2插件实现ajax处理(返回json数据)
- 使用 C++ 处理 JSON 数据交换格式
- 使用 C++ 处理 JSON 数据交换格式
- Jquery 使用Ajax获取后台返回的Json数据后,页面处理
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- 客户端 使用XML DOM加载json数据的方法
- php处理json请求(php获取post请求的json数据的实现方法)
- 数据库查回来数据封装成Javabean再转json(有Date类型不能转json处理方法)
- jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
- 使用 C++ 处理 JSON 数据交换格式
- AJAX异步请求,底层使用hibernate查询后的数据json封装之前的处理
- PHP使用ajax跨域获取json数据的两种方法
- 客户端 使用XML DOM加载json数据的方法
- 使用原生ajax处理json字符串的方法
- 在struts2下使用ajax,并通过json处理回传数据
- C++ Builder 使用 JsonCpp 解析json格式数据方法( 支持 UNICODE (UTF-16) / UTF-8 )