当前位置: 首页 > news >正文

ListView和SimPleteAdapter 把新闻数据绑定到ListView

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

ListView和SimPleteAdapter 把新闻数据绑定到ListView

//布局界面有2个xml文件 1 -- ListView -- activity_main.xml
                        2 -- 新闻数据内容 -- item_activity.xml

//记得添加联网权限

1、activity_main.xml文件 布局

代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <ListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </ListView>

</LinearLayout>

---------------

item_activity.xml文件 布局

代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/subject"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="30sp"/>
   
     <TextView
        android:id="@+id/summary"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="17sp"/>
    
      <TextView
        android:id="@+id/changed"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10sp"/>

</LinearLayout>
----------------------

2、MainActivity 类

代码

public class MainActivity extends Activity {
private ListView listview;
private SimpleAdapter adapter;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  
  this.listview = (ListView) this.findViewById(R.id.listview);
  
  String url = "http://litchiapi.jstv.com/api/GetFeeds?column=0&PageSize=20&pageIndex=1&val=100511D3BE5301280E0992C73A9DEC41";

  new MyAsyncTask().execute(url);
 }
 
//启动工具类 进行联网下载数据操作
 class MyAsyncTask extends AsyncTask<String, Void, byte[]>{

  @Override
  protected byte[] doInBackground(String... params) {
   String url = params[0];
   HttpGet get = new HttpGet(url);
   HttpClient client = new DefaultHttpClient();
   try {
    HttpResponse response = client.execute(get);
    if(response.getStatusLine().getStatusCode() == 200){
     return EntityUtils.toByteArray(response.getEntity());
    }
   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   
   return null;
  }
  @Override
  protected void onPostExecute(byte[] result) {
   if(result != null){
    
//把下载好的数据用json解析 把需要的数据解析出来 方法 -- jsonObject
    List<Map<String, Object>> data = jsonObject(new String(result));
    //把需要的数据解析好 返回来 然后 装在一个集合里
//把装在集合里的数据丢到自定义的适配器里
    adapter = new SimpleAdapter(MainActivity.this, data , R.layout.item_activity,
    new String[]{"subject","summary","changed"}, new int[]{R.id.subject,R.id.summary,R.id.changed});
   //把适配器绑定到ListView 
                                listview.setAdapter(adapter);
    
   }
  }
  private List<Map<String, Object>> jsonObject(String string) {
   List<Map<String, Object>> data_list = new ArrayList<Map<String, Object>>();
   try {
    JSONObject obj = new JSONObject(string);
    JSONObject obj_paramz = obj.getJSONObject("paramz");
    JSONArray array_feeds = obj_paramz.getJSONArray("feeds");
    for(int i = 0;i<array_feeds.length();i++){
     JSONObject object = array_feeds.getJSONObject(i);
     JSONObject obj_data = object.getJSONObject("data");
     Map<String,Object> map = new HashMap<String, Object>();
     map.put("subject", obj_data.getString("subject"));
     map.put("summary", obj_data.getString("summary"));
     map.put("changed", obj_data.getString("changed"));
     
     data_list.add(map);
    }
   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   
   return data_list;
  }
 }
}

 

转载于:https://my.oschina.net/u/2542711/blog/603584

相关文章:

  • I.MX6 Linux udev porting
  • Nginx搭建反向代理服务器过程详解(转)
  • 【PHP】PHP7的异常处理详解
  • IOS开发知识(六)
  • linux基础网络设置
  • 深入浅出Node.js (6) - 理解Buffer
  • Javascript 正确用法 二
  • 广州Uber优步司机奖励政策(1月25日~1月31日)
  • 6.Java基础知识--IO
  • fiddler+jmeter联合使用
  • 解决包含已存在的php文件,但提示就是找不到的问题
  • 2016第4周六
  • JNI学习
  • Opencv中直线的表示方法
  • Grok debugger
  • 【css3】浏览器内核及其兼容性
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • Akka系列(七):Actor持久化之Akka persistence
  • ES6系统学习----从Apollo Client看解构赋值
  • gitlab-ci配置详解(一)
  • jdbc就是这么简单
  • Leetcode 27 Remove Element
  • Material Design
  • MySQL用户中的%到底包不包括localhost?
  • Quartz初级教程
  • TypeScript实现数据结构(一)栈,队列,链表
  • - 概述 - 《设计模式(极简c++版)》
  • 官方解决所有 npm 全局安装权限问题
  • 前嗅ForeSpider教程:创建模板
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 使用 @font-face
  • 使用SAX解析XML
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  •  一套莫尔斯电报听写、翻译系统
  • 因为阿里,他们成了“杭漂”
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #Linux(make工具和makefile文件以及makefile语法)
  • (阿里云万网)-域名注册购买实名流程
  • (接口封装)
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (全注解开发)学习Spring-MVC的第三天
  • (转) Android中ViewStub组件使用
  • (转)mysql使用Navicat 导出和导入数据库
  • (转)树状数组
  • .axf 转化 .bin文件 的方法
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .net framework profiles /.net framework 配置
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET 反射的使用