[英]Android - Passing intent with object from one activity to another (crashing)
[英]Passing an ArrayList<Object> from one Intent to another
我在 ActivityA 中創建了一個 ArrayList,我想將它傳遞給 ActivityB。
活動A:
ArrayList<CardDetails> cardDetailsToPass = new ArrayList<>();
if (v.getId() == balance.getId()){
for(CardDetails cardDetails : cardDetailsArrayList){
int clientID = cardDetails.getClientID();
int cardID = cardDetails.getCardID();
int cardNo = cardDetails.getCardNo();
int balance = cardDetails.getCardBalance();
int availableBalance = cardDetails.getCardAvailableBalance();
int limit = cardDetails.getCardLimit();
int expDate = cardDetails.getExpDate();
String status = cardDetails.getStatus();
cardDetailsToPass.add(new CardDetails(clientID,cardID,cardNo,balance,availableBalance,limit,expDate,status));
Log.d("Adapter","clientID "+cardDetails.getClientID());
Log.d("Adapter","cardID "+cardDetails.getCardID());
Log.d("Adapter","cardNo "+cardDetails.getCardNo());
Log.d("Adapter","cardBalance "+cardDetails.getCardBalance());
Log.d("Adapter","cardAvailableBalance "+cardDetails.getCardAvailableBalance());
Log.d("Adapter","cardLimit "+cardDetails.getCardLimit());
Log.d("Adapter","cardExpDate "+cardDetails.getExpDate());
Log.d("Adapter","cardStatus "+cardDetails.getStatus());
}
Intent intent = new Intent(context, CardStatementActivity.class);
intent.putExtra("cardDetailsToPass",cardDetailsToPass);
context.startActivity(intent);
活動乙:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_card_statement);
Bundle extras = getIntent().getExtras();
if(extras != null){
//get the ArrayList here
}
}
我嘗試了一種方法來做到這一點,但沒有成功。 傳遞對象的 ArrayList 是否需要其他東西?
您不能將純 Java 對象列表傳遞給Intent
。
你可以做的是CardDetails
類實現Parcelable
和使用方法putParcelableArrayListExtra
你試試下面的,你的CardDetails
必須implement Parceable
intent.putParcelableArrayListExtra("key", ArrayList<T extends Parcelable> list);
startActivity(intent);
檢索它
getIntent().getParcelableArrayListExtra("key");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.