0

私のアプリケーションでは、ボタン(最初の画面にあります)をクリックしてWebサービスを呼び出したいと思います。最初の画面で入力を入力します。その入力値に基づいて、Webサービスが機能する必要があります。ボタンをクリックした後、新しいインテントを呼び出し、そこでWebサービスを呼び出しますが、1つの画面から別の画面に値を渡すにはどうすればよいですか。

私のコード:

ボタンクリックです(1画面目)

public void onClick(View v)
            {
                 // TODO Auto-generated method stub     
//              EditText medit;
//              EditText medit=(EditText)findViewById(R.id.editText1);
                 Intent myIntent = new Intent(v.getContext(), dispaly.class);
                 startActivity(myIntent);


}

これはWebサービスです(ボタンをクリックした後)

medit=(EditText)findViewById(R.id.editText1);
             super.onCreate(savedInstanceState);
             setContentView(R.layout.main);  
             SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

                String weight = medit.getText().toString();
                String fromUnit = "Grams";
                String toUnit = "Kilograms";

                PropertyInfo weightProp =new PropertyInfo();
                weightProp.setName("Weight");
                weightProp.setValue(weight);
//              weightProp.setValue(medit.toString());
                weightProp.setType(double.class);
                request.addProperty(weightProp);

                PropertyInfo fromProp =new PropertyInfo();
                fromProp.setName("FromUnit");
                fromProp.setValue(fromUnit);
                fromProp.setType(String.class);
                request.addProperty(fromProp);

                PropertyInfo toProp =new PropertyInfo();
                toProp.setName("ToUnit");
                toProp.setValue(toUnit);
                toProp.setType(String.class);
                request.addProperty(toProp);

                SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
                envelope.dotNet = true;
                envelope.setOutputSoapObject(request);
                HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);  
                try
                {
                    androidHttpTransport.call(SOAP_ACTION, envelope);
                    SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
                    Log.i("myApp", response.toString());  
                    TextView tv = new TextView(this);
                    tv.setText(weight+" "+fromUnit+" equal "+response.toString()+ " "+toUnit);
                    setContentView(tv); 

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

2 に答える 2

0

putExtraインテントの呼び出しに使用し、そのインテントを別の画面で取得する必要があります。

たとえば、次のように呼び出すことができます。

 Intent myIntent = new Intent(this, PlayVideoActivity.class);
    myIntent.putExtra("KeyName", value);
    startActivity(myIntent);

今、別の活動が来るとき、このような価値を得る。

 String value=getIntent().getStringExtra("Keyname");

これは使用例であり、putExtraでサポートするタイプをインテントに使用できます。

于 2012-05-02T07:39:49.080 に答える
0

これを行うには2つの方法があります。putExtraまたは共有設定を使用できます。
SharedPreferences:
共有設定からデータを編集するには
SharedPreferences Preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = Preferences.edit();
editor.putString( "Name"、 "Test");
editor.commit();

共有設定からデータを取得するには

  SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);    
  String name = preferences.getString("Name","");    
  if(!name.equalsIgnoreCase(""))  
  {   
      name = name+"  Sethi";  /* Edit the value here*/  
  }

また

**putExtra:**

**pass data using putExtra at the time of calling intent.**

Intent myIntent = new Intent(this, PlayVideoActivity.class);
myIntent.putExtra("KeyName", value);
startActivity(myIntent);

**Retrive data  from other activity**

String value=getIntent().getStringExtra("Keyname");
于 2014-07-01T10:16:52.257 に答える