| 
 
 /* 
 1.想要由被啟動的Activity取得回傳資料,那麼啟用端必須改用startActivityForResult ()方法來啟動Activity 
 2.被啟動的Activity端要回傳資料時,亦是使用putExtra ()方法設定name-value pair,之後再使用setResult()方法回傳資料 
 3.啟用端Activity必須實作onActivityResult ()方法來處理被啟動之Activity所回傳的資料 */
 1.來源_First.java
 /*
 //1.建立Intent物件
 Intent myIntent = new Intent();
 //2.藉由setClass()方法設定來源與目的地類別
 myIntent.setClass(First.this, Second.class);
 //3.建立Bundle物件,利用putString(鍵值,資料)方法新增字串資料
 Bundle bundle = new Bundle();
 bundle.putString("HEIGHT", height.getText().toString());
 bundle.putString("WEIGHT“, weight.getText().toString());
 //4.使用Intenet物件的puExtras()方法,附加Bundle物件
 myIntent.putExtras(bundle);
 //6.啟動活動
 startActivity(myIntent);
 */
 
 
 
 
復制代碼
package com.example.inten6_3;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class First extends Activity {
EditText et1,et2,et3;
Button btn1;
static final int SET_SECOND=1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first);
et1=(EditText)findViewById(R.id.editText1);
et2=(EditText)findViewById(R.id.editText2);
et3=(EditText)findViewById(R.id.editText3);
btn1=(Button)findViewById(R.id.button1);
btn1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Intent i=new Intent();
i.setClass(First.this, Second.class);
Bundle b1=new Bundle();
b1.putString("1", et1.getText().toString());
b1.putString("2", et2.getText().toString());
b1.putString("3", et3.getText().toString());
i.putExtras(b1);
startActivityForResult(i,SET_SECOND); 
}});
}
protected void onActivityResult (int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode)
{
case SET_SECOND:
if(resultCode==RESULT_OK){
Bundle b=data.getExtras();
String s=b.getString("sum");
TextView op=(TextView)findViewById(R.id.op);
op.setText(s);
}
}
}
} 
 
 
 2.目的地_Second.java
 /*在目標活動可以呼叫Activity物件的getIntent()方法取得Intent物件,
 然後呼叫Intent物件的getExtras()方法取得攜帶的Bundle物件*/
 
package com.example.inten6_3;
 import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.widget.Button;
 import android.widget.TextView;
 
 public class Second extends Activity {
 Button btn2;
 String result;
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.second);
 double n1,n2,n3,sum,avg;
 Bundle b2=this.getIntent().getExtras();
 if(b2!=null){
 n1=Double.parseDouble(b2.getString("1"));
 n2=Double.parseDouble(b2.getString("2"));
 n3=Double.parseDouble(b2.getString("3"));
 sum=n1+n2+n3;
 avg=sum/3;
 TextView output=(TextView)findViewById(R.id.output);
 output.setText(getString(R.string.s1)+n1+getString(R.string.s2)+n2+getString(R.string.s3)+n3
 +"\n"+getString(R.string.s4)+sum+getString(R.string.s5)+avg);
 result=output.getText().toString();
 }
 btn2=(Button)findViewById(R.id.button2);
 btn2.setOnClickListener(new OnClickListener(){
 @Override
 public void onClick(View v) {
 Intent reply=new Intent();
 Bundle c=new Bundle();
 c.putString("sum",result);
 reply.putExtras(c);
 setResult(RESULT_OK, reply);
 finish();
 }});
 }
 }
  IntentBundle_return.zip 
 
 
 |