Android开发日记(五)
从服务器端传递多个数据
先在服务器端设置cs文件
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace WebJSON.Controllers
{
public class adShowTitleController : Controller
{
DataInfo storedb = new DataInfo();
//
// GET: /JobDetails/ public JArray Index(int adid = int.MaxValue)
{ IEnumerable<ad> ads;
ads = storedb.ad.Where(u => u.adid < adid).OrderByDescending(u => u.adid).Take();
string json = JsonConvert.SerializeObject(ads);
return JArray.Parse(json);
} }
}
传递所有id小于所设置的最大值的json数组对象
然后在java客户端调用service方法取回这些json对象
在调用listItem方法用一个for循环设置所有listItem每层循环后加listItem.add(map);再生成一个新的listItem
listItem定义:ArrayList<HashMap<String, Object>> listItem;
SimpleAdapter listItemAdapter;
listItem = new ArrayList<HashMap<String, Object>>();
for (int i = 0; i < addetailsJsonArray.length(); i++) {
JSONObject lectureJsonObject = addetailsJsonArray.optJSONObject(i);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("lectureid", lectureJsonObject.optInt("adid"));
map.put("lecturetitle",lectureJsonObject.optString("adtitle").trim());
map.put("reporter", lectureJsonObject.optString("adman").trim());
map.put("lecturetime",lectureJsonObject.optString("addate").replace("T"," ").trim());
//.replace("T", " ").substring(0, 19));
//map.put("lecturesite", lectureJsonObject.optString("lecturesite").trim());
//map.put("campus",lectureJsonObject.optString("campus").trim());
//map.put("remark",lectureJsonObject.optString("remark").trim());
//map.put("depart", lectureJsonObject.optString("depart").trim());
//map.put("starttime", lectureJsonObject.optString("starttime").trim());
//lastLectureid=lectureJsonObject.optInt("id");
listItem.add(map);
// TODO Auto-generated method stub
listItemAdapter = new SimpleAdapter(this, listItem,// 数据源
R.layout.leturetitle_listview,// ListItem的XML实现
// 动态数组与ImageItem对应的子项
new String[] { "lectureid", "lecturetitle",
"reporter", "lecturetime"},
// ImageItem的XML文件里面的一个ImageView,两个TextView ID
new int[] { R.id.textView_lectureid,
R.id.textView_lecturetitle, R.id.textView_report,
R.id.textView_lecturetime });
listViewNewsMoreTitles.setAdapter(listItemAdapter);
Android开发日记(五)的更多相关文章
- 【Android开发日记】之入门篇(五)——Android四大组件之Service
这几天忙着驾校考试,连电脑都碰不到了,今天总算告一段落了~~Service作为Android的服务组件,默默地在后台为整个程序服务,辅助应用与系统中的其他组件或系统服务进行沟通.它跟Activity的 ...
- 【Android开发日记】之入门篇(七)——Android数据存储(上)
在讲解Android的数据源组件——ContentProvider之前我觉得很有必要先弄清楚Android的数据结构. 数据和程序是应用构成的两个核心要素,数据存储永远是应用开发中最重要的主题之一,也 ...
- 【Android开发日记】之入门篇(十二)——Android组件间的数据传输
组件我们有了,那么我们缺少一个组件之间传递信息的渠道.利用Intent做载体,这是一个王道的做法.还有呢,可以利用文件系统来做数据共享.也可以使用Application设置全局数据,利用组件来进行控制 ...
- 【Android开发日记】之入门篇(十一)——Android的Intent机制
继续我们的Android之路吧.今天我要介绍的是Android的Intent. 对于基于组件的应用开发而言,不仅需要构造和寻找符合需求的组件,更重要的是要将组件有机的连接起来,互联互通交换信息,才能够 ...
- 【Android开发日记】之入门篇(八)——Android数据存储(下)
废话不多说了,紧接着来讲数据库的操作吧.Come On! 提到数据存储问题,数据库是不得不提的.数据库是用来存储关系型数据的不二利器.Android为开发者提供了强大的数据库支持,可以用来轻松地构造基 ...
- 【Android开发日记】之入门篇(九)——Android四大组件之ContentProvider
数据源组件ContentProvider与其他组件不同,数据源组件并不包括特定的功能逻辑.它只是负责为应用提供数据访问的接口.Android内置的许多数据都是使用ContentProvider形式,供 ...
- 【Android开发日记】之入门篇(六)——Android四大组件之Broadcast Receiver
广播接受者是作为系统的监听者存在着的,它可以监听系统或系统中其他应用发生的事件来做出响应.如设备开机时,应用要检查数据的变化状况,此时就可以通过广播来把消息通知给用户.又如网络状态改变时,电量变化时都 ...
- 【Android开发日记】之入门篇(四)——Android四大组件之Activity
在Android中,无论是开发者还是用户,接触最多的就算是Activity.它是Android中最复杂.最核心的组件.Activity组件是负责与用户进行交互的组件,它的设计理念在很多方面都和Web页 ...
- 【Android开发日记】之入门篇(十四)——Button控件+自定义Button控件
好久不见,又是一个新的学期开始了,为什么我感觉好惆怅啊!这一周也发生了不少事情,节假日放了三天的假(好久没有这么悠闲过了),实习公司那边被组长半强制性的要求去解决一个后台登陆的问题,结果就是把 ...
- 【Android开发日记】之入门篇(十三)——Android的控件解析
Android的控件都派生自android.view.View类,在android.widget包中定义了大量的系统控件供开发者使用,开发者也可以从View类及其子类中,派生出自定义的控件. 一.An ...
随机推荐
- maven 如何给web项目添加jar包依赖
maven 如何给web项目添加jar包依赖 CreateTime--2018年4月19日19:06:21 Author:Marydon 开发工具:eclipse 1.打开pom.xml文件--& ...
- doGet和doPost区别
1,form运行方式 当form框里面的method为get时,执行doGet方法当form框里面的method为post时,执行doPost方法 2,生成方式 get方式有四种:1)直接在URL地址 ...
- Android C/C++ 开发
标准的做法是 把 src 放到 /Android/develop/ 目录下去,然后建立 Android.mk 文件, 然后 make modue ...., 但是,这种方式 太麻烦. 下面介绍一种方 ...
- 【laravel5.4】 Composer移除依赖
1.在一次使用composer安装依赖的时候,安装错了包,在其中文网站却找不到移除依赖的命令,只好使用按照官网说法: 为了从命令行获得帮助信息,请运行 composer 或者 composer lis ...
- get请求乱码情况
编写一个RegistServlet处理用户的Get请求数据 public void doGet(HttpServletRequest request, HttpServletResponse resp ...
- 利用Aspose.BarCode生成条码
生成条码有很多控件,大部分好的控件,做出来的条码精确清晰,但是往往该部分的控件费用都很高,这里推荐大家使用6.0版本的破解版,可以生成无水印,下方也可以不显示文字. 1.下图是 onbarcode 控 ...
- C#中的Invoke和BeginInvoke
一.Control#Invoke() 和Control#BeginInvoke() 在非UI线程中调用MessageBox.Show()结果是非模态对话框: 在UI线程中调用MessageBox.Sh ...
- .NET中那些所谓的新语法
.NET中那些所谓的新语法之四:标准查询运算符与LINQ 摘要: 开篇:在上一篇中,我们了解了预定义委托与Lambda表达式等所谓的新语法,这一篇我们继续征程,看看标准查询运算符和LINQ.标准查询运 ...
- Linux内存初始化(二)identity mapping和kernel image mapping
一.前言 本文没有什么框架性的东西,就是按照__create_page_tables代码的执行路径走读一遍,记录在初始化阶段,内核是如何创建内核运行需要的页表过程.想要了解一些概述性的.框架性的东西可 ...
- python标准库介绍——14 gc 模块详解
==gc 模块== (可选, 2.0 及以后版本) ``gc`` 模块提供了到内建循环垃圾收集器的接口. Python 使用引用记数来跟踪什么时候销毁一个对象; 一个对象的最后一个引用一旦消失, 这个 ...