android傳遞activity對象
⑴ android activity之間怎麼傳對象數據
StartActivity的時候將數據攜帶到Intent的bundle里,如果要攜帶自定義的對象,你自定義的對象要實現Serializable介面,就是在類里加一個implement Serializable。
然後
Intent intent = new Intent(this, Activity2);
Bundle bundle = new Bundle();
bundle.putSerializable("參數名", 自定義對象);
intent.putExtras(bundle);
startActivity(intent);
就可以把參數帶過去了,
取的時候用
getIntent().getSerializableExtra("參數名")
就可以取到你傳過來的對象了
強轉一下類型就能用了
⑵ 如何在Android開發中activity之間數據傳遞
方法/步驟
創建Intent對象,並配置參數,有那個activity跳轉到哪個activity
⑶ android 兩個activity之間怎樣傳遞數據
1創建Intent對象,並配置參數,有那個activity跳轉到哪個activity
2在intent對象中進行存放數據,數據的格式是key-value形式
3啟動跳轉
4進入下一個到跳轉的activity中,並取得intent對象
5通過intent對象取得bundle對象,數據就在bundle對象中,然後通過key-value形式取得數據⑷ android的activity之間可以傳遞對象或者集合嗎
可以,傳遞的對象要實現序列化介面
implements java.io.Serializable或者實現android.os.Parcelable介面
存值
intent.putExtra("name", value);
取值,然後強制類型轉換即可
intent.getSerializableExtra("name");
請採納哈
這里有篇文章也寫挺詳細的:
http://www.cnblogs.com/shaocm/archive/2013/01/08/2851248.html⑸ 如何在Android開發中activity之間數據傳遞
用intent在activity之間傳遞數據,需要注意三個方法:
1.startActivityForResult(Intent intent, int requestCode)
2.setResult(int resultCode, Intent data)
3.onActivityResult(int requestCode, int resultCode, Intent data)
需要注意的是:
1.函數1在Activity_A裡面調用,然後啟動Activity_B(由intent參數決定啟動哪個activity);然後Activity_B執行完了之後,在finish()函數裡面調用函數2;此時返回Activity_A;最後在Activity_A裡面系統自動調用已經重載的函數3,Activity_A可以從該函數的第三個參數data裡面獲得想要的數據。
2.函數1有兩個參數,第二個參數確定請求碼;
3.函數3有三個參數:第一個參數請求碼,與函數1的第二個參數意義相同,用於確定是否是從Activity_B里獲得的返回值;第二個參數是結果碼,用於確定返回的結果是否可用;第三個參數是intent變數,用於傳遞數據。⑹ android兩個activity之間傳值
Activity之間是沒有辦法直接傳遞數據的。Android的設計原則是,用Intent在不同的Activity和進程之間進行通信,但是通常來講,Intent中只能存入基本數據類型和系統默認支持的比如Uri之類的。那麼對於用戶自己定義的數據結構是無法直接用Intent來傳送的,如果想要通過Intent來傳遞自定義數據,可以讓數據結構實現Parcelable介面,這樣就可以把數據放入Intent。但是Intent的傳送效率也不是很高,特別是當傳遞一些如Bitmap的大數據,用Intent傳遞超過500K的Bitmap,就會造成Framework層的Java Binder掛掉,結果就是傳遞不成功。
這點可以算成是Android的一個弊端,沒有很好的解決方案。能做到的就是盡量設計的時候注意,盡量讓Activity之間共享基本數據類型。
Android本身的應用中也深受其害,可以看到有很多應用程序的源代碼中的主要的類在三千行以上的不在少數,比如Browser中的BrowserActivity有四千多行;Mms中的ComposeMessageActivity也有四千多行,等等。為什麼一個類會如此之大,就是因為它們是程序的主頁面,是業務的核心邏輯所在,裡面也控制著很多的其他的數據結構,而又無法與另外的Activity共享,所以就只能在一個Activity裡面做所的事情。⑺ android activity跳轉怎麼傳對象
Android之Activity的幾種跳轉方式 1.顯示調用方法 Intent intent=new Intent(this,OtherActivity.class); //方法1 Intent intent2=new Intent(); intent2.setClass(this, OtherActivity.class);//方法2 intent2.setClassName(this, "com.zy.MutiActivity.OtherActivity"); //方法3 此方式可用於打開其它的應用 intent2.setComponent(new ComponentName(this, OtherActivity.class)); //方法4 startActivity(intent2); 然後調用finish():結束當前Activity 2.隱式調用方法(只要action、category、data和要跳轉到的Activity在AndroidManifest.xml中設置的匹配就OK 3.跳轉到另一個Activity後,當返回時能返回數據 在跳轉的Activity端,調用startActivityForResult(intent2, 1),跳轉到下一個Activity,其中第一個參數為傳入的意圖對象,第二個為設置的請求碼; 跳轉到第二個Activity後,調用setResult(100, intent)方法可返回上一個Activity,其中第一個參數為結果碼,第二個為傳入的意圖對象; 在第一個Activity通過onActivityResult()方法獲得返回的數據。
⑻ 如何在Android開發中activity之間數據傳遞
android各組件之間可以使用Intent來傳遞數據, 這里以ActivityA向ActivityB傳遞數據為例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Intent intent = new Intent(context, ActivityB.class);
//如果context上下文不是Activity的話, 需要添加下面這個flag,
if (!(context instanceof Activity)) {
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
//添加要傳遞的數據
//這里的key到時候ActivityB會用來得到value
//android要求可以傳遞的數據類型包括基本數據類型,
//基本數據類型的數組,CharSequence,以及實現了Parcelable的對象
//putExtra是重載方法, 根據value的類型會適當的打包進intent的Bundle對象里
intent.putExtra(key, value);
//或則將數據打包進Bundle data里, 然後intent.putExtras(data);
context.startActivity(intent);
在ActivityB中
1
2
3
4
5
6
public void onCreate(Bundle savedInstanceState) {
//得到傳遞過來的數據
Bundle bundle = getIntent().getExtras();
//通過getXXX方法來獲取key對應的value
bundle.getXXX(key);
}