-1

現在、android/eclipseでSOAPWebサービスを使用しています。正常に動作しています。サービスリンクを見つけてください。

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

「GetStudentInformation」、これは私が取り組んでいるサービスであり、その入力値は「111105009」です。

上記のサービスの入力としてこの値を指定すると、エミュレーターで以下の画像のような結果が表示され、これらのことも公開されます。

Image_1

ここに画像の説明を入力してください

Image_2 ここに画像の説明を入力してください

しかし、ここでの私の問題は、上記の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);
    }
}

あなたの貴重な助けをありがとう!...

4

1 に答える 1

0

Webサービスから応答がxml形式で返されます。あなたは単にそれを解析し、必要な情報を引き出す必要があります。それを行う方法を説明する例がインターネット上にたくさんあります。

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

于 2012-07-20T13:22:25.983 に答える