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. MyBatis连接MySQL8配置

    <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</a ...

  2. The Basic Of K8s

    k8s 基础概念 1.一个k8s集群包括 一个Master节点(主节点) 一群Node节点(计算节点) 2.Master节点 包括API Server.Scheduler.Controller man ...

  3. 5G时代,会有什么奇葩事儿?

    ​ 在3GPP RAN第187次会议关于5G短码方案的讨论中,中国华为推荐的PolarCode方案获得认可,成为5G控制信道eMBB场景编码的最终解决方案.坦白讲,笔者在读这个新闻的时候,手里备着一本 ...

  4. 如何通过学校系统漏洞注册到 @edu.cn 邮箱账号?

    此文章仅针对我自己学校的系统进行分析,并不代表所有学校的系统都是如此. 我们学校比较"抠",可能是为了节省学校的带宽资源然后禁止学生注册教育邮箱账号.不过像一部电影所说的那样&qu ...

  5. linux lsof常用方法

    lsof简介 lsof(list open files)是一个列出当前系统打开文件的工具,在linux环境下,任何事物都是以文件形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件.系统 ...

  6. GDB调试系列之了解GDB

    想要熟练利用GDB进行程序调试,首先要了解什么是GDB. 1. 什么是GDB GDB (the GNU Project Debugger) 是一个可以运行在大多数常见的UNIX架构.Windows.M ...

  7. Java入门教程一(Java简介)

    什么是Java语言 Java 是由 Sun Microsystems 公司于 1995 年推出的一门面向对象程序设计语言.2010 年 Oracle 公司收购 Sun Microsystems,之后由 ...

  8. K-means真的不能使用曼哈顿距离吗?

    问题 说到k-means聚类算法,想必大家已经对它很熟悉了,它是基于距离计算的经典无监督算法,但是有一次在我接受面试时,面试官问了我一个问题:“k-means为什么不能使用曼哈顿距离计算,而使用欧式距 ...

  9. 使用thymeleaf模板实现博客评论的异步刷新

    使用thymeleaf模板实现博客评论的异步刷新 最简单的一个要求:用户可以在博客下面进行评论,然后评论后点击提交后直接上传到数据库,并且局部刷新 这是前端页面的展示,使用的semanticUI进行构 ...

  10. Java基础:浅谈数据输入流/数据输出流《DataInputstream类与DataOutputstream类》

     一.理论概述 数据输入/输出流(DataInputStream类与DataOutputStream类) 允许应用程序以与机器无关的方式从底层输入流中读取基本Java数据类型. 说白了就是,当读取一个 ...