0

我想在android中显示一个自定义列表视图。

这是我使用产品位置过滤产品的网络服务。

   public class Record
   {
       public string city { get; set; }
       public string description { get; set; }
       public string mobile { get; set; }
   }

   [WebMethod]
   public string filter(int flt)
   {
       string cmdStr = "select * from add_product where prod_pos ='" + flt.ToString() + "'";
       SqlDataReader rd = con.Getdata(cmdStr);

       List<Record> records = new List<Record>();

       while (rd.Read())
       {
           records.Add(new Record()
           {
               city = rd.GetString(1).ToString(),
               description = rd.GetString(3).ToString(),
               mobile = rd.GetString(5).ToString(),
           });
       }

       var oSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
       string sJSON = oSerializer.Serialize(records);
       rd.Close();
       return "data"+sJSON;
   }

当我们通过在服务器上发布它在服务器上测试它时 Web 服务的输出.. 当我们通过 int flt="5"

<string>
    data[
        {"city":"Aurangabad","description":"desktops dell prize 3000","mobile":"9850888129"},      
        {"city":"Pune","description":"gg","mobile":"8600525858"}
    ]
</string>

以下是我的 add_product 表条目....

     [id_prod               data type int]   //  auto increment... primary key
 [city          data type varchar(50)]
     [category          data type varchar(50)]
     [description           data type varchar(MAx)]
     [prod_pos          data type int]
     [mobile        datatype varchar(20)]
     [image                 datatype text]

提前致谢...

4

2 回答 2

0

如果您正在使用 android 原生平台开发应用程序,您可以遵循以下建议。

  1. 要从 ASP Web 服务中检索数据,请使用“Ksoap2”库。它是一个用于 android 原生应用程序开发的 SOAP Web 服务客户端库。

  2. 然后使用 org.json.* 包中的 JSONArray 和 JSONObject 类解析 json 响应。

    例如。JSONArray jsArray = new JSONArray(jsonResponse);

    JSONObject jsRecObjt = null;
    
    List<Record> mRecodsLst = new ArrayList<Record>();
    
    for (int i = 0; i < jsArray .length(); i++) {
    

    jsRecObjt = jsArray.getJSONObject(i);

       String city= jsRecObjt.getString("city");
       String description = jsRecObjt.getString("description");
       String mobile= jsRecObjt.getString("mobile");
    
       Record rec = new Recode();
       rec.setCity();
       rec.setDesc();
       rec.setMobile();
    
       mRecodsLst.add(rec); 
    
    }
    

    然后将此记录列表传递给自定义列表视图以显示它。

于 2013-11-18T11:21:15.060 回答
0

我知道你想通过在 Listview 中绑定你的 JSON 数据来显示。我假设你没有绑定你的 Listview,这就是为什么你没有得到你的显示

要将您的 Json 数据与列表视图绑定,您必须编写一些脚本,如下所示

 <script type="text/javascript">
$(document).ready(function() {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "YourPage.aspx/YourWebServiceName",
data: "{}",
dataType: "json",
success: function(data) {
for (var i = 0; i < data.d.length; i++) {
$("#<%= YourListViewID.ClientID %>").append("<tr><td>" 
  + data.d[i].city+ "</td><td>"
  + data.d[i].description+ "</td><td>"
  + data.d[i].mobile+ "</td></tr>");
}
},
error: function(result) {
alert("Error");
}
});
});
</script>
于 2013-11-18T10:40:52.240 回答