Skip to main content
 首页 » 编程设计

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

2025年05月04日265del

当我试图将一种 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"); 

希望对您有所帮助!