Android開發:Activity之間的傳值

來源:互聯網
上載者:User

方法1: 1給2傳值

Activity1:

Java代碼

 
  1. final Intent intent = new Intent(mCtx,Activity1.class) ;  
  2.  
  3. //將目前使用者傳遞下去  
  4.  
  5. intent.putExtra("user", mUser);  
  6.  
  7. startActivity(intent);  

裡邊mUser是一個對象,傳的事實上是一個Map,"user"是對象mUser的key

Activity2:

Java代碼

 
  1. mUser = (User) getIntent().getSerializableExtra("user");  

mUser是對象,getIntent()是Activity的方法,值得注意的是得到的mUser 不是引用,而是new了一個對象並賦值,如果這東西要回傳的話,要startActivity(intent);就沒用了。

所以用方法2:

Activity1:

Java代碼

 
  1. intent.setClass(mCtx, Activity2.class);  
  2.  
  3. intent.putExtra("user", mUser);  
  4.  
  5. startActivityForResult(intent, 1);  

並且在Activity1中

Java代碼

 
  1. protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
  2.  
  3. super.onActivityResult(requestCode, resultCode, data);  
  4.  
  5. if(resultCode==1 || data.getSerializableExtra("putUserbyhua")!=null)  
  6.  
  7. mUser=(User) getIntent().getSerializableExtra("putUserbyhua");  
  8.  
  9. }

Activity2:

擷取傳來的值

Java代碼

 
  1. mIntent = getIntent()  
  2.  
  3. mUser=(User) mIntent.getSerializableExtra(UserConst.USER_DATA);  

在按返回鍵時跳轉到1

Java代碼

  1. @Override 
  2.  
  3. public boolean onKeyDown(int keyCode, KeyEvent event) {  
  4.  
  5. if(keyCode == KeyEvent.KEYCODE_BACK){  
  6.  
  7. final Intent intent=new Intent();  
  8.  
  9. intent.setClass(mCtx, Activity2.class);  
  10.  
  11. intent.putExtra("putUserbyhua",mUser);  
  12.  
  13. this.setResult(1);  
  14.  
  15. this.finish();  
  16.  
  17. }  
  18.  
  19. return super.onKeyDown(keyCode, event);  
  20.  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.