gpt4 book ai didi

java - Android开发中Fragment之间传递对象数组列表

转载 作者:行者123 更新时间:2023-12-01 06:27:35 26 4
gpt4 key购买 nike

我正在尝试在 Android 开发中的 fragment 之间传递 arraylist。这是我尝试将事务数组列表传递到另一个 fragment 的部分:

switch (menuItem.getItemId()){

case R.id.expenses:
final ExpenseActivity expenseFragment = new ExpenseActivity();
new GetAllTransactionAsyncTask(
new GetAllTransactionAsyncTask.OnRoutineFinished() {
public void onFinish() {
FragmentTransaction expsenseTransaction = getSupportFragmentManager().beginTransaction();
Bundle bundle = new Bundle();
//bundle.putParcelableArrayList("transactionlist", GetAllTransactionAsyncTask.allTransaction);
//bundle.putString("transactionlist", GetAllTransactionAsyncTask.allTransaction);
expenseFragment.setArguments(bundle);
expsenseTransaction.replace(R.id.frame,expenseFragment);
expsenseTransaction.commit();
}
}).execute(session_accountID);


return true;
}

GetAllTransactionAsyncTask.allTransaction将返回一个事务数组列表。至于我的交易实体类,我实现了Serialized:

import java.io.Serializable;

@SuppressWarnings("serial")
public class Transaction implements Serializable{
...
}

我不确定如何在 fragment 之间实际传递对象数组列表。我注释掉了这两行,因为它们是不兼容的类型。

有什么想法吗?提前致谢。

最佳答案

ArrayList<Transaction> transactionList = new ArrayList<>();

将 transactionList 传递给 bundle

Bundle bundle = new Bundle();
bundle.putSerializable("key", transactionList);

在接收 fragment 中

ArrayList<Transaction> transactionList = (ArrayList<Transaction>)getArguments().getSerializable("key");

注意:要通过 bundle 传递你的 bean 类,你必须实现可序列化,即

YourBeanClass 实现了可序列化

关于java - Android开发中Fragment之间传递对象数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43909061/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com