1、WebServices的返回结果

2、ListView内容布局代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorWhite"
> <ImageView
android:id="@+id/app_icon"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp" android:src="@mipmap/ic_launcher_round1" /> <TextView
android:id="@+id/customitem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/app_icon"
android:gravity="center"
android:paddingLeft="20dp"
android:text="app name"
android:textSize="20sp"
android:textColor="@color/colorPrimaryDark"
android:layout_marginTop="5dp"/> <TextView
android:id="@+id/customdesc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/customitem"
android:layout_toRightOf="@id/app_icon"
android:gravity="center"
android:paddingLeft="20dp"
android:singleLine="true"
android:text="app describe"
android:textSize="14sp"
android:textColor="@color/colorPrimaryDark"
android:layout_marginBottom="5dp"/> </RelativeLayout>

3、Adapter的代码

 import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView; import java.util.List;
import java.util.Map; public class MyCustomAdapter extends BaseAdapter {
private Context context;
private List<Map<String,Object>> list;
private LayoutInflater inflater;
public MyCustomAdapter(List<Map<String,Object>> list, Context context)
{
this.context=context;
this.list=list;
inflater=LayoutInflater.from(context);
}
@Override
public int getCount() {
return list==null?:list.size();
} @Override
public Object getItem(int position) {
return position;
} @Override
public long getItemId(int position) {
return position;
}
class ViewHolder{
public ImageView imageView;
public TextView appText;
public TextView descText;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder =null;
if (holder == null){
holder=new ViewHolder();
if(convertView ==null){
convertView=inflater.inflate(R.layout.drawelist,null);
holder.imageView = (ImageView) convertView.findViewById(R.id.app_icon);
holder.appText = (TextView) convertView.findViewById(R.id.customitem);
holder.descText = (TextView) convertView.findViewById(R.id.customdesc);
convertView.setTag(holder);
}else {
//根据Tag获取已经存在的ViewHolder
holder = (ViewHolder) convertView.getTag();
}
//设置显示内容
holder.appText.setText(list.get(position).get("name").toString());
holder.descText.setText(list.get(position).get("desc").toString());
holder.imageView.setBackgroundResource((Integer)list.get(position).get("image"));
} return convertView;
} }

4、访问WEB代码

  public static List<EmpInfo> GetEmpInfo(String PageNum, String PageSize, String strwhere) {

         List<EmpInfo> listEmpinfo = new ArrayList<>();
InputStreamReader in = null;
try {
final String SERVER_URL = GlobalAppliaction.WebUrl + "GetEmpList";
HttpPost request = new HttpPost(SERVER_URL); // 根据内容来源地址创建一个Http请求
List params = new ArrayList();
params.add(new BasicNameValuePair("PageNum", PageNum)); // 添加必须的参数
params.add(new BasicNameValuePair("PageSize", PageSize)); // 添加必须的参数
params.add(new BasicNameValuePair("strwhere", strwhere)); // 添加必须的参数
request.setEntity(new UrlEncodedFormEntity(params, org.apache.http.protocol.HTTP.UTF_8)); // 设置参数的编码
HttpResponse httpResponse = new DefaultHttpClient().execute(request); // 发送请求并获取反馈 // 解析返回的内容
if (httpResponse.getStatusLine().getStatusCode() != ) {
InputStream inputStream = httpResponse.getEntity().getContent();
in = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(in); StringBuffer strBuffer = new StringBuffer();
String line = null;
while ((line = bufferedReader.readLine()) != null) {
strBuffer.append(line);
}
inputStream.close();
bufferedReader.close();
String result = strBuffer.toString(); String errCode = ""; String strresult = "";
JSONObject root = new JSONObject(result); errCode = root.getString("Code");
if (errCode.equals("")) {
strresult = root.getString("Result"); JSONArray array = root.getJSONArray("Result");//解析result
Gson gson = new Gson();
listEmpinfo = gson.fromJson(strresult, new TypeToken<List<EmpInfo>>() {
}.getType()); } return listEmpinfo; } } catch (IOException e) {
e.printStackTrace();
Log.d("debug", e.toString());
return null;
} catch (JSONException e) {
e.printStackTrace();
return null;
} finally { if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return listEmpinfo;
}

5、UI展示获取结果

//启动后台任务
GetWebResultTask queryAddressTask = new GetWebResultTask();
//分页显示
queryAddressTask.execute("", "", "");
  ArrayList<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map;
public class GetWebResultTask extends AsyncTask<String, Integer, List<EmpInfo>> {
@Override
protected List<EmpInfo> doInBackground(String... params) {
List<EmpInfo> GetResult = null;
try {
GetResult = WebByHttp.GetEmpInfo(params[], params[], params[]); } catch (Exception e) {
e.printStackTrace();
}
//将结果返回给onPostExecute方法
return GetResult; } //此方法可以在主线程改变UI
protected void onPostExecute(List<EmpInfo> result) { try { for (int ii = ; ii < result.size(); ii++) {
map = new HashMap<String, Object>();
map.put("image", R.drawable.ic_launcher_background);
map.put("name", result.get(ii).EmpName);
map.put("desc", result.get(ii).CreateTime);
list.add(map);
}
myCustomAdapter = new MyCustomAdapter(list, getActivity());
listviewemp.setAdapter(myCustomAdapter);
listviewemp.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getActivity(), list.get(position).get("name").toString(), Toast.LENGTH_LONG).show();
}
}); } catch (Exception e) {
e.printStackTrace();
} }
}

6、界面效果

Android ListView显示访问WebServices返回的JSON结果的更多相关文章

  1. Android ListView显示不同样式的item

    先look图 我们再使用listview时,listview的item大多时候都是一种样式,在很多app中也很常见,但有时候根据需求,可能数据的数量不一样,同个类型的数据显示的位置不同,亦或者有的it ...

  2. Android ListView显示底部的分割线

    有些时候,我们会提出这样的需求,希望ListView显示底部(顶部)的分割线,这样做,会使得UI效果更加精致,如下图所示: 如果搜索资料,大家会搜到一堆相关的方法,最多的莫过于设置listview的f ...

  3. Android ListView 显示多种数据类型

    ListView往往可能会有不同的数据类型,单类型的数据可能运用会比较少些,这也是最近项目中的一个需求{在发送消息的时候,需要选择联系人,而联系人列表由英文字母索引+联系人组成},上一篇文章只是一个基 ...

  4. android ListView点击item返回后listview滚动位置

    1.Don't work when dynamically loading content Parcelable state; @Override public void onPause() { // ...

  5. Android 登陆功能的实现(访问WebServices 解析返回的JSON结果)

    1. WebServices返回的JSON结果 { , "Result": [{ ", ", ", " }] } 2.访问WEB服务代码 i ...

  6. Android 自定义 ListView 显示网络上 JSON 格式歌曲列表

    本文内容 环境 项目结构 演示自定义 ListView 显示网络上 JSON 歌曲列表 参考资料 本文最开始看的是一个国人翻译的文章,没有源代码可下载,根据文中提供的代码片段,自己新建的项目(比较可恶 ...

  7. Android项目开发全程(四)-- 将网络返回的json字符串轻松转换成listview列表

    前面几篇博文介绍了从项目搭建到获取网络字符串,对一个项目的前期整体工作进行了详细的介绍,本篇接着上篇介绍一下怎么样优雅将网络返回的json字符串轻松转换成listview列表. 先上图,看一下效果. ...

  8. Android_(控件)使用ListView显示Android系统中SD卡的文件列表

    使用ListView显示Android SD卡中的文件列表 父类布局activity_main.xml,子类布局line.xml(一个文件的单独存放) 运行截图: 程序结构: <?xml ver ...

  9. Android ListView滑动过程中图片显示重复错乱闪烁问题解决

    最新内容建议直接访问原文:Android ListView滑动过程中图片显示重复错乱闪烁问题解决 主要分析Android ListView滚动过程中图片显示重复.错乱.闪烁的原因及解决方法,顺带提及L ...

随机推荐

  1. Analysis of Hello2 source code

    Hello2 应用程序是一个 Web 模块,它使用 Java Servlet 技术来显示问候语和响应,使用的是 Java Servlet 技术. 该应用程序源代码在 tutorial-examples ...

  2. LeetCode 刷题记录(1-5题)

    1 两数之和(题目链接) class Solution: # 一次哈希法 def twoSum(self, nums, target): """ :type nums: ...

  3. SpringMVC之参数绑定

    1.Controller package com.tz.controller; import org.springframework.beans.factory.annotation.Required ...

  4. spring入门(14)

    AOP是一个新的专题,基础部分主要是入门 后续的五.六.七都属于AOP专题: 所以有必要对这三章要学什么有个全局的认识. 1 概要 1 什么是AOP及实现方式 介绍了AOP的用途,以及大致的实现方案 ...

  5. vuejs 踩坑及经验总结

    问题描述 在使用 v-for repeat 组件时控制台会出现警告: 解决方法 在组件标签上使用 v-for : 加 :key 使用 template 标签包裹该组件,再在 template 标签 上 ...

  6. c++中的函数重载、函数重写、函数重定义

    目录 一.函数重载 二.函数重写 三.函数重定义 为了更加深刻的理解 函数重载.重写.重定义,我们可以带着如下这两个问题去思考: 1.子类中是否可以定义父类中的同名成员?为什么? 可以,因为子类与父类 ...

  7. JavaScript 执行环境以及作用域链

    执行环境(execution context,为简单起见,有时也称为"环境")是 JavaScript 中最为重要的一个概念.执行环境定义了变量或函数有权访问的其他数据,决定了它们 ...

  8. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(11.2)- FlexSPI NOR连接方式大全(RT1060/1064(SIP))

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RT1060/1064(SIP)两款MCU的FlexSPI NOR启动的连接方式. 上一篇文章<FlexSPI N ...

  9. 94-datetmie模块

    目录 datetmie模块 1 返回当前时间 2 当前时间+3天 3 当前时间-3天 4 当前时间-3小时 5 当前时间+30分钟 6 时间替换 datetmie模块 datetime模块可以看成是时 ...

  10. IAR软件使用的快捷键配置以及配置cc2530环境

    以下是我对IAR软件使用的快捷键配置cc2530以及配置环境的总结,如下图所示 ​ ​ ​ 弹出保存窗口 ​ 工程生成完毕——生成.c文件 ​ 快捷键ctrl+s保存.c文件 ​ ​ ​ ​ ​ 选择 ...