1

Android から SOAP メソッドで Web サービスを利用しています。次の画面では、その Web サービスの値を 2 つの個別のテキスト ビューに表示しています。

ここで、その Web サービスは 2 つの値を返します。しかし、次の画面のテキスト ビューでは、その Web サービスから 1 つの値しか表示できません。

しかし、次の画面の2つの別々のテキストビューボックスに両方の値を表示する必要があります....どうすればよいですか?

提案してください..

注 :- その Web サービスの入力値は、FromDate : 01/01/2012 およびToDate : 07/07/2012です。

参照用に私の情報源を見つけてください

Main_WB.java

public class Main_WB extends Activity  
{
EditText edt1,edt2;
//TextView txt_1;
Button btn;

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

    edt1 = (EditText)findViewById(R.id.editText1);
    edt2 = (EditText)findViewById(R.id.editText2);
    btn = (Button)findViewById(R.id.button1);

    btn.setOnClickListener(new View.OnClickListener()
    {
    public void onClick(View v) 
    {
        getTMSChart(edt1.getText().toString(),edt2.getText().toString());
        Intent myint = new Intent(Main_WB.this,ResultActivity.class);
        startActivity(myint);
    }     
    });
 }

private void getTMSChart(String FromDate,String ToDate)
{
// txt_1 = (TextView)findViewById(R.id.textView1);

 System.setProperty("http.keepAlive", "false");        
 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);        

 envelope.dotNet = true;

 String NAMESPACE = "http://tempuri.org/";
 String URL = "http://54.251.60.177/TMSOrdersService/TMSDetails.asmx";
 String METHOD = "GetTMSChart";

 SoapObject request = new SoapObject(NAMESPACE, METHOD);        
 request.addProperty("FromDate", FromDate);               
 request.addProperty("ToDate", ToDate);

 envelope.setOutputSoapObject(request);
 HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

 try 
 {
    androidHttpTransport.call(NAMESPACE + METHOD, envelope);
    SoapObject result = (SoapObject) envelope.bodyIn;
    SoapObject root =  (SoapObject) ((SoapObject)(result).getProperty(0)).getProperty("NewDataSet");
    int tablesCount = root.getPropertyCount();

    for (int i = 0; i < tablesCount; i++)
    {
       SoapObject table = (SoapObject) root.getProperty(i);
       int propertyCount = table.getPropertyCount();

    //   String[] ord = new String[propertyCount];
    //   String[] fre = new String[propertyCount];

    // int[] fre = new int[propertyCount];
    // int[] margin = new int[propertyCount];

    for (int j = 0; j < propertyCount; j++)
    {   

    String x,y;

    // int orderNo = Integer.parseInt(table.getPropertyAsString("Order_No"));
    // int freightRate = Integer.parseInt(table.getPropertyAsString("Freight_Rate"));
    // int marginPercent = Integer.parseInt(table.getPropertyAsString("Margin_Percent"));

    String orderNo =  table.getPropertyAsString("Order_No");
    String freight = table.getAttributeAsString("Freight_Rate");


    x = orderNo.toString();
    y = freight.toString();
    Intent in = new Intent(getApplicationContext(),ResultActivity.class);

    in.putExtra("gotonextpageX",x);
    in.putExtra("gotonextpageY", y);

    startActivity(in);




    //ord[j] = orderNo;
    //  fre[j] = freightRate;
    // margin[j]= marginPercent;

    //   x = orderNo.toString();
    //   y = fre.toString();

    //   Intent myIntent = new Intent(Main_WB.this, ResultActivity.class);
    //   myIntent.putExtra("gotonextpage", x);
    //   startActivity(myIntent);


    // whatever you do with these values
          }                   
       }
    }   
    catch (Exception e) 
    {
    }   
 } }

結果アクティビティ.java

public class ResultActivity extends Activity 
{
String x,y;
TextView txt1,txt2;

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

Bundle extras = getIntent().getExtras();

if(extras != null)
{   
    x = extras.getString("gotonextpageX");
    y = extras.getString("gotonextpageY");
}
else
{   
}
txt1 = (TextView)findViewById(R.id.txtVw);
txt2 = (TextView)findViewById(R.id.txtVw2);

txt1.setText(x);
txt2.setText(y);

}}

貴重なお時間をありがとうございました!...

4

1 に答える 1

3

ここでそれをチェックしてください...

public class Main_WB extends Activity {
EditText edt1, edt2;
// TextView txt_1;

Button btn;

ArrayList<String> result;

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

    edt1 = (EditText) findViewById(R.id.editText1);
    edt2 = (EditText) findViewById(R.id.editText2);
    btn = (Button) findViewById(R.id.button1);

    result = new ArrayList<String>();

    btn.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            result.addAll(getTMSChart(edt1.getText().toString(), edt2.getText().toString()));

            Intent in = new Intent(getApplicationContext(), ResultActivity.class);

            in.putExtra("gotonextpageX", result.get(0));
            in.putExtra("gotonextpageY", result.get(1));

            startActivity(in);
        }
    });
}

private ArrayList<String> getTMSChart(String FromDate, String ToDate) {
    // txt_1 = (TextView)findViewById(R.id.textView1);

    System.setProperty("http.keepAlive", "false");
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

    envelope.dotNet = true;

    String NAMESPACE = "http://tempuri.org/";
    String URL = "http://54.251.60.177/TMSOrdersService/TMSDetails.asmx";
    String METHOD = "GetTMSChart";

    SoapObject request = new SoapObject(NAMESPACE, METHOD);
    request.addProperty("FromDate", FromDate);
    request.addProperty("ToDate", ToDate);

    envelope.setOutputSoapObject(request);
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

    String x = "", y = "";

    ArrayList<String> stringResult = new ArrayList<String>();

    try {
        androidHttpTransport.call(NAMESPACE + METHOD, envelope);
        SoapObject result = (SoapObject) envelope.bodyIn;
        SoapObject root = (SoapObject) ((SoapObject) (result).getProperty(0)).getProperty("NewDataSet");
        int tablesCount = root.getPropertyCount();

        for (int i = 0; i < tablesCount; i++) {
            SoapObject table = (SoapObject) root.getProperty(i);
            int propertyCount = table.getPropertyCount();

            for (int j = 0; j < propertyCount; j++) {

                stringResult.add(table.getPropertyAsString("Order_No").toString());
                stringResult.add(table.getPropertyAsString("Freight_Rate").toString());
            }
        }
    } catch (Exception e) {
    }

    return stringResult;

}
}

2番目のクラスを変更しないでください。これはうまくいくはずです。

于 2012-10-01T07:51:00.310 に答える