android 调用 webservice 返回字符串想在listview中显示。出现问题……

下文是 主查询模块 Query_xiaofeijilu.java,

package com.gongneng.chaxun;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;



import org.json.JSONException;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.SoapFault;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;

import com.constant.Constant;
import com.example.kehuduan.R;

public class Query_xiaofeijilu extends Activity {

    private Button okButton;
    private ListView listview;
    private Handler handler = null;
    private SimpleAdapter adapter;
    private List<Map<String,Object>> muldata;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.query_xiaofeijilu);
        okButton = (Button) this.findViewById(R.id.xiaofeijiluchaxun);
        listview = (ListView) this.findViewById(R.id.listxiaofeijilu);

        handler = new Handler();
        okButton.setOnClickListener(new Button.OnClickListener() {
            @Override
            public void onClick(View v) {
                new Thread() {
                    @Override
                    public void run() {

                        try {
                            try {
                                getWebservice();
                            } catch (IOException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            } catch (XmlPullParserException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            } catch (JSONException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        } catch (InterruptedException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }
                }.start();
            }
        });
    }

    public void getWebservice() throws InterruptedException, IOException,
            XmlPullParserException, JSONException {
        // 创建属于主线程的handler

        HttpTransportSE ht = new HttpTransportSE(Constant.SERVICE_URL);
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        SoapObject request = new SoapObject(Constant.SERVICE_NS,Constant.QueryAction_chaxunxiaofeijilu);
        request.addProperty("aac999", "2200000");
        envelope.bodyOut = request;// 往出走的数据Out,也就是服务器的传入值
        try {
            ht.call(null, envelope);
            Object object = (Object) envelope.getResponse();// 就用Object来取

            muldata = new ArrayList<Map<String,Object>>();

            if (envelope.getResponse() != null) {
                String a = object.toString();
                String b =  a.replace("[","");//变[为空
                String c =  b.replace("]","");
                String d =  c.replace("{","");
                String e =  d.replace("}","");
                String f = e;
//              String[] arr = c.split(",");//将字符串转为数组,以,为分割
                    Map<String, Object> aa = transStringToMap(f);
                    Iterator<?> iter = aa.entrySet().iterator(); 
                    while (iter.hasNext()) { 
                        Map<String,Object> map=new HashMap<String, Object>();
                        Map.Entry entry = (Map.Entry) iter.next(); 
                        Object key = entry.getKey(); 
                        Object val = entry.getValue(); 
                        map.put(key.toString(),val.toString());
//                      map.put("text", "测试文本:");
                        muldata.add(map);
                    }
                    adapter = buildListAdapter(this, muldata);

                    new Thread() {
                        public void run() {
                            handler.post(runnableUi);
                        }
                    }.start();
                    return;


            } else {
                System.out.println("没有返回值");
                return;
            }
        } catch (SoapFault e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    // 构建adapter.
    public SimpleAdapter buildListAdapter(Context context,List<Map<String, Object>> data) {
        SimpleAdapter adapter = new SimpleAdapter(context, data,
                R.layout.chaxunxiaofeijilulist, 
                new String[] { "AKB021","AKE038","KS","JS","ROWNUM" }, 
                new int[] { R.id.akb021, R.id.ake038,R.id.ks,R.id.js ,R.id.rownum});
        return adapter;
    }

    // 构建Runnable对象,在runnable中更新界面 // 更新页面list 需要单独写个线程
        Runnable runnableUi = new Runnable() {
        @Override
        public void run() {
            // 更新界面
            listview.setAdapter(adapter);
            Looper.loop();
        }
    };
    //===================================
    //字符串转MAP
      public static Map<String, Object> transStringToMap(String mapString){  
          Map<String, Object> map = new HashMap<String, Object>();  
          java.util.StringTokenizer items;  
          for(StringTokenizer entrys = new StringTokenizer(mapString, ",");
                  entrys.hasMoreTokens();   
            map.put(items.nextToken(), items.hasMoreTokens() ? ((Object) (items.nextToken())).toString() : null))  
              items = new StringTokenizer(entrys.nextToken(), ":");  
          return map;  
        }  



}

下文是list页面

 <?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/child"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

    <!-- 若想隐藏id加入此属性: android:visibility="gone",这样做有点类似于Html中hidden域      android:background="#E3D25E" -->

    <TextView
        android:id="@+id/akb021"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
         android:textColor="#6633FF"
         android:text="   akb021   "
         />

    <TextView
        android:id="@+id/ake038"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="   ake038   "/>

    <TextView
        android:id="@+id/ks"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="   ks   "/>

    <TextView
        android:id="@+id/js"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="   js   "/>
    <TextView
        android:id="@+id/rownum"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="   rownum   "/>

</LinearLayout>

主显示页面

 <RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <EditText
        android:id="@+id/editTextShenfenzheng"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/listxiaofeijilu"
        android:layout_alignParentTop="true"
        android:layout_alignRight="@+id/listxiaofeijilu"
        android:ems="10"
        android:hint="@string/shenfenzheng" >

    </EditText>

    <Button
        android:id="@+id/chongzhi"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:text="@string/chongzhi" />

    <ListView
        android:id="@+id/listxiaofeijilu"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/xiaofeijiluchaxun"
        android:layout_alignRight="@+id/chongzhi"
        android:layout_below="@+id/editTextShenfenzheng"
         >

    </ListView>

    <Button
        android:id="@+id/xiaofeijiluchaxun"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/chongzhi"
        android:layout_alignBottom="@+id/chongzhi"
        android:layout_toLeftOf="@+id/chongzhi"
        android:text="@string/xiaofeijilu" />

</RelativeLayout>

但是现在只把行数显示出来了,里边没有值,附图:

图片说明
这个问题,困扰了我好几天了,烦请各位好友,帮忙出出招,在此写过了!!!

0

3个回答

你往simpleadapter中有4个key"AKB021","AKE038","KS","JS","ROWNUM",但map只放1个
 while (iter.hasNext()) { 
                        Map<String,Object> map=new HashMap<String, Object>();
                        Map.Entry entry = (Map.Entry) iter.next(); 
                        Object key = entry.getKey(); 
                        Object val = entry.getValue(); 
                        map.put(key.toString(),val.toString());  //1个 应该map要放4个
//                      map.put("text", "测试文本:");  //
                        muldata.add(map);
                    }
0
asd123asdas1
KILON 回复danielinbiti: 收下我的膝盖吧! 郑重的,非常感谢!!!
4 年多之前 回复
danielinbiti
danielinbiti 回复KILON: 迭代是把key和value配对取出来,但你对应的是simpleadatper,你在传入的时候每个map定义了"AKB021","AKE038","KS","JS","ROWNUM"5个key值与界面的5个textview对应。所以你的每个map都需要有这5个key值。
4 年多之前 回复
asd123asdas1
KILON 真心没理解~我以为可以把每个都取出来~
4 年多之前 回复
asd123asdas1
KILON (┬_┬)::>_<:: 我大哭了!!太感谢了!!!真的是这的问题! 朋友能说下那个迭代是怎么用的么?!
4 年多之前 回复
asd123asdas1
KILON 哦 哦,谢谢,我现在试!!!
4 年多之前 回复
asd123asdas1
KILON 这个迭代不是把map里的每一个键值对都取出来么?!
4 年多之前 回复
danielinbiti
danielinbiti 回复KILON: map.put("AKB021",val.toString()); map.put("AKE038",val.toString()); map.put("JS",val.toString()); map.put("ROWNUM",val.toString());
4 年多之前 回复
asd123asdas1
KILON 用while 怎么加下一个map啊?
4 年多之前 回复
asd123asdas1
KILON (⊙0⊙),好的,我现在试试,就在线等答案呢~ 稍等~~~
4 年多之前 回复
0
asd123asdas1
KILON 好的,我看下~~~先谢谢~
4 年多之前 回复

不要沉啊~ 还有没有哪位朋友有方法啊?~? 我现在是直接把webservice的结果集转成String传出来了~ 现在是一条长长的字符串了~
楼上的朋友的方法应该可行,但是有没有更简便的方法?~而且我想显示出那个想PLSQL查询出来的那种列表,不知道还有没有朋友可以帮忙啊~

在此感谢了!

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
android调用.net写的webservice将数据显示到listview上
android调用webservice访问服务器数据库返回json格式数据,解析json数据,然后显示到listview控件上,(ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar)外部包。
Android开发笔记之接口数据通过listView显示
使用Listview来完成提供接口的数据展示
Android调用webservice显示返回的图片和上传图片功能
Android调用webservice接口,获取图片文件,并显示出来,如何实现?还有上传图片该怎么实现,麻烦各位大神写出简单的例子来参照一下,谢谢。。。。
Android调用webservice返回数据为空
Android调用webservice返回数据为空n 最近做Android项目的时候,调用一个webservice接口返回的数据一直为空,但是在网页上测试的时候该接口返回数据是正常的。于是用log打印出来是:java.net.SocketTimeoutException异常,原因是调用webservice时设置的超时时间timeout太短了,所以当接口返回的数据太大,或者上传的数据太大时就会出现
android webservice通过soap协议返回XML,如何解析XML
返回的结果中为true时,返回中的信息。false时,返回中的信息rnrn中的数据形式:rnrn   主键1rn   表单号1rn  显示主题1rn  对应表单的主键1rn     1表示退回1rnrn。。。rnrn   主键nrn   表单号nrn  显示主题nrn  对应表单的主键nrn     1表示退回nrnrn然后我只需要把每个表中的“显示主题”取出来并显示在listview中。PS:使
htppClient调用webservice,并解析返回的xml字符串
npackage com.amc.sggk;nnimport java.io.IOException;nimport java.io.UnsupportedEncodingException;nnimport org.apache.http.HttpEntity;nimport org.apache.http.HttpResponse;nimport org.apache.http.client....
获取webservice 返回的 dataset 数据集 并转换成 datatable
rnrnrnService1 rnservice= new Service1();rnDataTable dt =rnservice.Get_Data(prods_no.Text.Trim()).Tables[0];rnrn            total_pack_amt.Text = dt.Rows[0]["total_pack"].ToString();rnrn           
Android从外部API获取json数据并以listview形式展现
1、权限的设置rnrnrn2、android studio加载外包rncompile 'com.lzy.net:okgo:2.1.4'rn    compile 'com.lzy.net:okrx:0.1.2'rn    compile 'com.lzy.net:okserver:1.1.3'rnrn3、写Mpplicationrnpublic class MyApplication extend
Android网络取数据显示到ListView实例
package com.example.network;rnrnimport java.io.IOException;rnimport java.io.InputStream;rnimport java.net.MalformedURLException;rnimport java.net.URL;rnimport java.util.ArrayList;rnrnimport org.json.J
android获取webservice接口的数据
前言 n 其实我不怎么会这个,我是边看源码边做翻译的,突然发现自己好喜欢翻译别人的东西,这个源码来自于我的项目,总是用却从未看过为嘛要这样用,废话不多说,开始看吧,demo下载地址: n (还没写完,写完就发上来) n 1、首先是给listview填充数据,那么就得发送网络请求对吧,看下面:2.我们点击cgquery方法到接口的实现类去,如下:3.我们先看BeanGeneralInquiries这个
使用webservice返回xml格式数据使用jq解析
1.新建一个web服务,命名为TestWebService.asmx/// /// 测试 /// /// 信息 /// [WebMethod(Description = "修改信息")] public DataTable ModifyInfo(string TestInfo) { DataTable dt = new DataTable("
Android中Listview显示服务器端传送JSON格式的流程(一)
话说Android客户端调用接口访问服务器端,返回一大串JSON格式的数据。如果我想用listview和Adapterl来显示该怎么办呢? 这就是这篇博文的主要内容。rn       第一步:把json数据解析出来,根据要获取的字段建一个实体类。再写一个解析方法类如下,拿到内容才能显示。俗话说:手中有粮,心中不慌。rnrnpublic class Parse {n n public s
MFC调用WebService(托管)-vc.net2005
vc.net2005 MFC调用WebService(C#开发),采用托管实现。 webService实现+-*/,以及返回字符串,通过输入string,返回string.
php做接口+android 请求API接口并展示到ListView例子
php做接口+android 请求API接口并展示到ListView例子
AndroidStudio 调用 C#编写的Webservice
AndroidStudio 调用C#编写的WebService
Android中ListView数据不显示问题
一、简介:nn最近使用listView来显示蓝牙设备列表,运行后发现什么都没有显示。nn nn二、调试:nn1、在自定义Adapter重写的getView方法中添加一条日志,发现运行后该日志并没有打印出来,说明getView方法并没有执行;nn2、检查传入自定义Adapter的数据列表ArrayList,在ArrayList添加数据后添加日志打印,发现运行后日志能打印出数据,说明ArrayList...
xamarin.android listview控件通过web api获取并展示数据
xamarin.android listview控件通过web api获取并展示数据
okhttp请求远程数据并在ListView显示
1.我在本地搭建的服务端,基于springmvc,hibernate和注解,写了一个简单查询方法: @RequestMapping(value="/topicjson.do",method=RequestMethod.GET)n @ResponseBody n public void topicjson(HttpSession session,HttpServletReques
Delphi7调C#Webservice用返回ClientDataSet XML格式数据
Delphi7调C#Webservice用返回ClientDataSet XML格式数据
Android 处理ListView数据为空
ListView及其他继承自AdapterView的类都有一个简便的处理这种情况的方法: setEmptyView(View)。n当ListView的Adapter为空或者Adapter的isEmpty()方法返回true的时候,它将会把设置的emptyview绘制出来。n 1. <FrameLayout xmlns:android = "http://schemas.android
解析网络json数据并展示到ListView上
网易新闻看起来很简洁,左边是一张图片,右边是一些文字信息,这样的排版是十分常见的,给人的感觉就是简洁明了,下面通过解析网络json数据并展示到ListView上,来实现同样的效果,效果图如下:nnnnn1.数据来源于网上json数据的解析,网址为http://mrobot.pcauto.com.cn/v2/cms/channels/3?pageNo=1&pageSize=20&v=4.0
WebService传递大字符串
写一个小例子 nnWebService开发相对简单了 但是遇到了一个传递大字符串 并入库的需求n所以字符串入库肯定是CLOB 因为是大字符串n(需求是传递一个1M左右的字符串 然后返回一个1M的字符串)n最初觉得只是一个小需求n写一个WebService接口 然后里面用JDBC链接数据库 然后插入 最后返回 OK搞定n几分钟写完之后  觉得还行n然后测试n发现别说1M 就是上了几
C# WebService中将集合数据转化为字符串(json,xml )的方式
在写webservice的时候需要将从数据库中查询出的数据(各种集合)转化为json字符串。 n如果在取出集合后再对集合进行遍历,拼接成xml就太麻烦了。 n所以首先介绍一下通过标准方法自动转为json字符串。 n方法一: n首先需要引入:Newtonsoft.Json.dl (下载地址在我个人上传的资源中有,可以查看下载) n之后添加引用: using Newtonsoft.Json; n转化时的
gSoap传输中文出现乱码的解决方案
gSoap传输中文出现乱码的解决方案 rnrn 最近写WebService程序时,遇到了一个很棘手的问题:通过SOAP接口传输中文字符时出现乱码。rn 我是用C++编写服务端,框架代码由gSoap自动生成;SOAP接口对外开放,允许使用C++,Java和C#中任意一种语言编写客户端。gSoap默认的编码方式是UTF-8,用gSoap自动生成的客户端代码编写出来的程序传输中文字符时...
Android采用ListView实现数据列表显示
(1)、首先设计界面,使用上面一个数据库项目,将数据库中的所有数据用ListView显示在屏幕上:新建一个布局文件item.xmlrnrn       android:layout_width="120dp"rn       android:layout_height="wrap_content"rn       android:id="@+id/name"rn       />rn    rn 
Bmob云获取数据并和Listview结合显示
我的这个小例子实现了从Bmob云中批量获取数据并且将他们显示在一个Listview中,便于更直观的展示nn废话不多说先看效果图nnnn这个也比较好实现 算是自己学习路上的一个小小的记录nn直接上代码nn查询语句的代码nnn BmobQuery&amp;lt;Person&amp;gt;query= new BmobQuery&amp;lt;Person&amp;gt;();n query.addWhe...
android客户端通过webservice获取数据库图片
如下图所示,我的客户端想通过动态获取得到图片并且显示出来,通过客户端可以上传并且显示图片,怎么做啊?第一步获取服务器PC端图片就有难度……大侠们,怎么解决呢?
webservice返回XML 符号被转译
使用的axis2的ServiceClient sender=new ServiceClient();//可以百度,String xml = StringEscapeUtils.unescapeHtml4(result);  //转义
Android_请求网络数据展示到Listview
package activity.example.com.day;nnimport android.graphics.Bitmap;nimport android.graphics.BitmapFactory;nimport android.os.AsyncTask;nimport android.os.Handler;nimport android.os.Message;nimport andr
前端调用WebServices时处理后台总是返回xml格式数据问题
解决这个问题可以从两前端、后台两方面考虑nn一.前端jquery调用时 设置下返回类型就可以nnn $.ajax({n data: cc,n url: "http://localhost:3330/asmx/test.asmx/GetPerson",n ...
如何用winform调用webservice的数据并显示
我的webervice函数运行结果是我想在winform中用butoon获取它的值并显示在listview 中或者gridview,请问怎么做啊?我的winform界面如下代码如下using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawi...
关于自定义适配器和listview中自定义view是否显示的问题
我在我的listview中每一个item有两个显示事项因为是一个记事本app,所以每个item第一行显示conetnt,第二行显示时间则,排列下来每一行都有两个textview,但是有的时候我的某一项content并没有对应的时间,所以我并不需要第二个textview所以我在我适配器的getview方法中做出了调整。下面是我的item布局文件&amp;lt;RelativeLayout xmlns:and...
Java Servlet调用WebService返回值为null的问题
这几天,这处理Jaave Servlet调用WebService的时候,碰到返回值为空的问题,但是,新建的Java项目,使用同样的方法调用,缺能够返回正确的值。nnServlet中的代码:nnpackage dbconn;nimport java.io.BufferedInputStream;nimport java.io.FileInputStream;nimport java.io.Input...
Java解析调用webservice服务的返回XML串
本文由Markdown语法编辑器编辑完成。1. 需求分析;已知当在调用某一webservice的服务时,如果调用成功,会接受到该服务的返回XML串。后端在获取了该XML原始串时,需要进行解析,将其解析为JSON格式,以便于发送到前台,供前台页面显示和交互。2. 解决方案:该XML的原始形式为:<?xml version="1.0" encoding="UTF-8" ?>n<SOAP-ENV:Enve
Android实用工具类——ListView动态显示条目数目
动态加载ListView的高度:rn package com.example.epnc.utils; n n import android.view.View; n import android.view.ViewGroup; n import android.widget.ListAdapter; n import android.widget.L
Android中ListView控件数据显示及其子项点击事件
1.activity_main.xml文件中布局ListView控件&amp;lt;RelativeLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;n xmlns:tools=&quot;http://schemas.android.com/tools&quot;n android:layout_width=&quot;match_paren...
delphi字符unicode编码后与webservice通过json通讯
项目中遇到需求需要把delphi里的字符串post到php的webservice接口,rndelphi写json字符串时遇到双引号等符号时串出来的json传到php端会解析失败,经分析后发现需要对特殊字符进行unicode编码,rn不多说,上干货rnfunction TForm1.GetUniCode(AChar: String): String;rnvar rn   I:  Integer;rn
ListView点击获取文本
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {n @Overriden public void onItemClick(AdapterView&amp;lt;?&amp;gt; adapterView, View view, int i, long l) {n ...
php调用webservice接口程序,返回xml格式,php解析xml形成数组
n&amp;lt;?phpnset_time_limit(0);nini_set('soap.wsdl_cache_enabled','0');//关闭缓存nheader('Content-Type: text/html; charset=UTF-8');n$soap=new SoapClient('http://192.168.1.33:6321/services/OAInterface?wsdl',a...
ListView在Activity和Fragment中的显示和使用
一:在Fragment中显示ListViewrnrn1.在Fragment中显示ListView,主要用到ListFragment这个类,新建一个类继承ListFragment,ListFragment内置了ListView,所以无需覆盖Fragment的onCreateView()方法或者为Fragment生成一个带有ListView的布局,ListFragment默认实现 一个全屏ListVi
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 想在深圳找java培训班 想在网上买大数据教程