java - Android-将对象的 Intent 从一个 Activity 传递到另一个 Activity (崩溃)

标签 java android android-intent arraylist crash

当我试图将一种 Activity 的意图传递给另一种 Activity 时,我的应用程序崩溃了,没有putExtra()可以正常工作。

这是我第一个 Activity 的摘录

 ArrayList<Subject> subjectList = new ArrayList<Subject>();

   public void computeGrades(View view){

    Intent intent = new Intent(this, JLCSActivity2B.class);
    intent.putExtra("subjectList", subjectList);
    startActivity(intent);
   }

第二 Activity
public class JLCSActivity2B extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main2);

    Intent intent = getIntent();
    ArrayList<Subject> subjectList = (ArrayList<Subject>) intent.getSerializableExtra("subjectList");
 }
}

最佳答案

您需要在Subject类中实现Serializable。

public class Subject implements Serializable {
  //your variables, constructor and getters and setters
}

在您的“源 Activity ”中,使用以下命令:
ArrayList<Subject> subjectList = new ArrayList<Subject>();
Intent intent = new Intent(SourceActivity.this, TargetActivity.class);
intent.putExtra("subjectList", subjectList);

在您的目标 Activity 中,使用以下命令:
ArrayList<Subject> subjectList = new ArrayList<Subject>();
subjectList = (ArrayList<Question>)getIntent().getSerializableExtra("subjectList");

希望对您有所帮助!

关于java - Android-将对象的 Intent 从一个 Activity 传递到另一个 Activity (崩溃),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32047975/

相关文章:

java - 如何根据位置获取应用程序的名称?

android - 空 NFC 标签属于哪种 Intent 类型?

java - 打印具有最多重复字符集的子字符串

Java:使用.txt文件将每行的特定索引分配给数组列表

android - openstreetmap - 如何在屏幕中央设置标记?

android - Instant Run 需要启用 'Tools | Android | Enable ADB integration'

java - 如何获得包含从 1 到 "n"的所有数字所需的 ArrayList<Integer> 的最小数量?

java - 使用Java中的接口(interface)触发从A类到B类的事件

android - React-Native Android - 从 Intent 中获取变量

android - 什么是App多行文字共享 Intent