1、Activity传递数据,并显示Activity上。

 

2、Android用Intent来做activity的跳转,轻量级的数据用Bundle 配合着传递。

传回数据用startActivityForResult来搞。

 

main类代码如下:

 

  1. package com.smart.intent; 
  2.  
  3. import java.io.Serializable; 
  4.  
  5. import android.app.Activity; 
  6. import android.content.Intent; 
  7. import android.os.Bundle; 
  8. import android.view.View; 
  9. import android.view.View.OnClickListener; 
  10. import android.widget.Button; 
  11. import android.widget.Toast; 
  12. class Data implements Serializable 
  13.     public String name = "老梁"
  14.     public int[] values = new int[] 
  15.     { 13590,9,2,3,7,8 }; 
  16. public class Main extends Activity implements OnClickListener{ 
  17.     /** Called when the activity is first created. */ 
  18.     @Override 
  19.     public void onCreate(Bundle savedInstanceState) { 
  20.         super.onCreate(savedInstanceState); 
  21.         setContentView(R.layout.main); 
  22.         Button btnStart=(Button)findViewById(R.id.btnStartActivity); 
  23.         Button btnReturn=(Button)findViewById(R.id.btnReturn); 
  24.         btnStart.setOnClickListener(this);//绑定器 
  25.         btnReturn.setOnClickListener(this); 
  26.     } 
  27.  
  28.     @Override//判断按是哪一个按键。 
  29.     public void onClick(View v) { 
  30.     switch(v.getId()){ 
  31.     case R.id.btnStartActivity: 
  32.         Data data=new Data(); 
  33.         Intent intent=new Intent(this,SmartBrowser.class); 
  34.         intent.putExtra("name""Smart"); 
  35.         intent.putExtra("age"988); 
  36.         intent.putExtra("data", data); 
  37.         startActivity(intent); 
  38.         break
  39.     case R.id.btnReturn: 
  40.         Intent proIntent=new Intent(this,SmartProcess.class); 
  41.         startActivityForResult(proIntent, R.layout.process); 
  42.         break
  43.     } 
  44.          
  45.     } 
  46.  
  47.     @Override//判断数据接收时的确定与取消。 
  48.     protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
  49.         switch(requestCode){ 
  50.          
  51.         case R.layout.process: 
  52.             if(resultCode==20){ 
  53.                 Toast toast=Toast.makeText(this, data.getStringExtra("text"), Toast.LENGTH_LONG); 
  54.                 toast.show(); 
  55.             }else if(resultCode==21){ 
  56.                 Toast toast=Toast.makeText(this"你取消了操作", Toast.LENGTH_LONG); 
  57.                 toast.show(); 
  58.             } 
  59.         break
  60.          
  61.         default
  62.          
  63.             break
  64.         } 
  65.          
  66.          
  67.          
  68.          
  69.         //反回码与请求码一样。 
  70.         super.onActivityResult(requestCode, resultCode, data); 
  71.     } 
  72.  
  73.  
  74.      

数据显示代码:

 

  1. package com.smart.intent; 
  2.  
  3. import android.app.Activity; 
  4. import android.os.Bundle; 
  5. import android.widget.TextView; 
  6.  
  7. public class SmartBrowser extends Activity{ 
  8.  
  9.     @Override 
  10.     protected void onCreate(Bundle savedInstanceState) { 
  11.         super.onCreate(savedInstanceState); 
  12.         setContentView(R.layout.browser); 
  13.         TextView textView=(TextView)findViewById(R.id.textview); 
  14.         Bundle bundle=getIntent().getExtras();//得到数据。 
  15.         String s=""
  16.         s+="name:"+bundle.getString("name")+"\n"
  17.         s+="name:"+bundle.getInt("age")+"\n"
  18.         Data data=(Data)bundle.getSerializable("data"); 
  19.         s+="Data.name:"+data.name+"\n";//进行接收数据。 
  20.         String values=""
  21.         for (int i = 0; i < data.values.length; i++) { 
  22.             values+=data.values[i]+"";//得到数据。 
  23.         } 
  24.         s+="Data.values:"+values; 
  25.         textView.setText(s);//显示数据 
  26.          
  27.     } 
  28.  
  29.      
  30.      
  31.      
  32.      
  33.      

startActivityForResult反回数据

 

  1. package com.smart.intent; 
  2.  
  3. import android.app.Activity; 
  4. import android.os.Bundle; 
  5. import android.view.View; 
  6. import android.view.View.OnClickListener; 
  7. import android.widget.Button; 
  8. import android.widget.EditText; 
  9.  
  10.  
  11. public class SmartProcess extends Activity implements OnClickListener 
  12.      
  13.         private EditText editText; 
  14.          
  15.      
  16.      
  17.  
  18.     @Override 
  19.         protected void onCreate(Bundle savedInstanceState) { 
  20.              
  21.             super.onCreate(savedInstanceState); 
  22.             setContentView(R.layout.process); 
  23.             editText=(EditText)findViewById(R.id.edittext); 
  24.             Button btnOK=(Button)findViewById(R.id.btnOK); 
  25.             Button btnCencel=(Button)findViewById(R.id.btnCancel);   
  26.             btnOK.setOnClickListener(this); 
  27.             btnCencel.setOnClickListener(this); 
  28.     } 
  29.  
  30.  
  31.  
  32.  
  33.     @Override//按建的判断 
  34.     public void onClick(View v) { 
  35.      
  36.         switch(v.getId()){ 
  37.         case R.id.btnOK: 
  38.             getIntent().putExtra("text", editText.getText().toString()); 
  39.             setResult(20,getIntent()); 
  40.             break
  41.         case R.id.btnCancel: 
  42.             setResult(21); 
  43.             break
  44.              
  45.         } 
  46.         finish(); 
  47.     } 
  48.