无法在android / eclipse上使用Web服务的值

时间:2012-07-20 12:55:56

标签: android eclipse web-services

现在我在android / eclipse上使用SOAP Web服务。它的工作正常。请找到我的服务链接

http://54.251.60.177/MobileWS/Student.asmx?wsdl

“GetStudentInformation”,这是我正在使用的服务,其输入值为“111105009”

如果我将此值作为上述服务的输入,它只是在模拟器上显示结果,如下图所示,并公开显示这些内容。

IMAGE_1

enter image description here

IMAGE_2 enter image description here

但是我的问题是,上面的image_2显示了所有带有答案的xml标签,但我只需要显示我在image_2上提到的答案。如何实现这个概念?

请在下方找到我的来源

WebMethod.java

public class GetStudentInformation 
{
public String GetStudentInformation(String sStudentCode)
{
    return sStudentCode;
}    }

Demo_tabActivity.java

public class Demo_tabActivity extends Activity 
{
private static String NAMESPACE = "http://tempuri.org/";
private static String METHOD_NAME = "GetStudentInformation";
private static String SOAP_ACTION = "http://tempuri.org/GetStudentInformation";
private static String URL = "http://54.251.60.177/MobileWS/Student.asmx?WSDL";

Button btnFar;
EditText txtFar;

   @Override
   public void onCreate(Bundle savedInstanceState)
   {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);

       txtFar = (EditText)findViewById(R.id.editText_in);
       btnFar = (Button)findViewById(R.id.button1);
       btnFar.setOnClickListener(new View.OnClickListener()
       {
       public void onClick(View v)
       {
         String b;

         //Initialize soap request + add parameters
         SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

         //Use this to add parameters

         request.addProperty("sStudentCode",txtFar.getText().toString());

         //Declare the version of the SOAP request

         SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

         envelope.setOutputSoapObject(request);

         envelope.dotNet = true;

         try 
         {
             HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

             //this is the actual part that will call the webservice

             androidHttpTransport.call(SOAP_ACTION, envelope);

             // Get the SoapResult from the envelope body.

             SoapPrimitive result = (SoapPrimitive)envelope.getResponse();


             if (result != null)
             {
              //Get the first property and change the label text

                b = result.toString();
                Intent myIntent = new Intent(Demo_tabActivity.this, Tabhost.class);

                myIntent.putExtra("result1", b);
                startActivity(myIntent);
             }
             else
             {
                Toast.makeText(getApplicationContext(), "No Response",Toast.LENGTH_SHORT).show();
             }
         }
        catch (Exception e)
        {
           e.printStackTrace();
           }
         }
       });
   }
}

Tabhost.java

public class Tabhost extends TabActivity {

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main1);

    String result1;

    Bundle extras = getIntent().getExtras();

    if(extras!=null)
    {
        result1 = extras.getString("result1");
    } else result1 = "Didnt work !" ;



    TabHost tabHost = getTabHost();
    TabHost.TabSpec spec;
    Intent intent;

    intent = new Intent().setClass(this, Tab_1.class);
    intent.putExtra("result1", result1);
    spec = tabHost.newTabSpec("first").setIndicator("First").setContent(intent);
    tabHost.addTab(spec);

    intent = new Intent().setClass(this, Tab_2.class);
    spec = tabHost.newTabSpec("second").setIndicator("Second").setContent(intent);
    tabHost.addTab(spec);

    tabHost.setCurrentTab(0);
 }
 }

Tab_1.java

public class Tab_1 extends Activity 
{
TextView tv1;
String result1;

/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) 
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);

Bundle extras = getIntent().getExtras();
if(extras != null)
{   
    result1 = extras.getString("result1");
} 
else result1 = "didnt work";

    tv1 = (TextView)findViewById(R.id.textView_main2);
    tv1.setText(result1);


}
}

Tab_2.java

public class Tab_2 extends Activity {


/** Called when the activity is first created. */   

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main3);
    }
}

感谢您的宝贵帮助!...

1 个答案:

答案 0 :(得分:0)

您的网络服务正在以xml格式向您返回回复。您只需解析它并获取所需的信息。互联网上有很多例子说明如何做到这一点。

https://www.google.com/search?q=android+xml+parsing+example