开发者

How to call a web service that returns an arrayList in android?

I want to retrieve an arrayList from the web service in my android activity. The following code doesn't work:

How to solve tha error? When I tried this way, res is null!

public void onCreate(Bundle savedInstanceState)
{
  super.onCreate(savedInstanceState);
  System.out.println("qqqqqqqqqqq");
  setContentView(R.layout.second);
  Button submit = (Button) findViewById(R.id.b01);
  submit.setOnClickListener(new View.OnClickListener()
  {
    public void onClick(View view)
    {

      Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_SHORT).show();

      EditText txt = (EditText) findViewById(R.id.editText1);
      String text = txt.toString();
      SoapObject request = new SoapObject(Name_Space, Method_Name);
      PropertyInfo pi1 = new PropertyInfo();
      pi1.setName("shopId");
      pi1.setValue(text);
      request.addProperty(pi1);
      SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
      envelope.setOutputSoapObject(request);
      HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
      try
      {
        System.out.println("Hellooooooooooo66666666666666");
        androidHttpTransport.call(Soap_Action, envelope);
        SoapPrimitive res = (SoapPrimitive) envelope.getResponse();
        System.out.println("Result SP " + res);


        ArrayList<Discount> result = (ArrayList<Discount>) envelope.getResponse();
        Toast.makeText(getApplicationContext(), "Hi", Toast.LENGTH_SHORT).show();
        System.out.println("Result in getResult() : " + res);

        System.out.println("Traversing ArrayList in forward direction ");
        if (res != null)
        {
          for (Discount ds : result)
          {
            discou开发者_如何学Gont = ds;

          }
        }
        else
        {
          Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_SHORT).show();
        }


        Toast.makeText(getApplicationContext(), envelope.getResponse().toString(), Toast.LENGTH_SHORT)
            .show();
        Toast.makeText(getApplicationContext(), discount.getProductName(), Toast.LENGTH_SHORT).show();
        System.out.println("Size 1111 " + result.size());


      } catch (NullPointerException e)
      {
        e.printStackTrace();
      } catch (Exception e)
      {
        e.printStackTrace();
      }
    }
  }
}

Thanks,

Sneha


I am not able to figure out on arrayList.
But i am able to call a WS that returns an array of objects which can then be converted to an arrayKList as follows:

    try{
             System.out.println("Hellooooooooooo66666666666666");  
             androidHttpTransport.call(Soap_Action, envelope);  
             SoapObject result=(SoapObject)envelope.bodyIn;  
             System.out.println("value of result " + result);  
             System.out.println("Count " + result.getPropertyCount());  
             System.out.println("Prop 1 " + result.getProperty(0));  
             System.out.println("A list b4 :; " + arrayList);  
             Discount discount=null;  
             if(result!=null) {  
            for(int i=0;i<result.getPropertyCount();i++){  
                discount=new Discount((SoapObject)result.getProperty(i)); 
            Toast.makeText(getApplicationContext(),"Hi",Toast.LENGTH_SHORT).show();    

            System.out.println("is result null????????????"+result);  


            arrayList.add(discount);  
            System.out.println("Array ::::::::: " + arrayList);  
            }
        }



        for (Discount d : arrayList) {  
            System.out.println(d);  
            System.out.println("Array List Prod Name " + d.getProductName());  
            System.out.println("Array List Prod id" + d.getProductId());  
            System.out.println("Array List shop id " + d.getShopId());  
            System.out.println("Array List discount " + d.getDiscount());  

        }  



    }catch(NullPointerException e){  
        e.printStackTrace();  
    }
    catch(Exception e){  
        e.printStackTrace();  
    }  

Also you have to create a bean class 'Discount' which implements KvmSerializable of KSOAP2.

Regards,
Sneha

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜