Activity查看數據與文本框反回數據

 

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.  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章