Serializable
将类置为可序列化的,这样可以使用bundle和intent或者setAction传递ArrayList和HashMap
MainActivity->Activity 1
MainActivity:
Intent intent = new Intent(MainActivity.this, Course_details.class);
String TheCourse = CourseNL.get(i);
Course courseInfo = CourseMap.get(TheCourse);
intent.setAction("action");
intent.putExtra("TheCourse", courseInfo);
startActivityForResult(intent, 1);
Activity 1:
if("action".equals(intent.getAction())){
Course theCourse=(Course)intent.getSerializableExtra("TheCourse");
CourseIDTv.setText(theCourse.getCourseID());
CourseNameTv.setText(theCourse.getCourseName());
CourseTermTv.setText(String.valueOf(theCourse.getCourseTerm()));
CoursePreTv.setText(theCourse.getPrerequisiteCourse());
}
MainActivity->Activity 2
MainActivity:
Intent intent = new Intent(MainActivity.this, Courses_registered.class);
intent.setAction("action");
intent.putExtra("Registered", CoursesRegistered);
intent.putExtra("HashMap", CourseMap);
startActivityForResult(intent, 2);
Activity 2:
if("action".equals(intent.getAction())){
CourseRegistered=(ArrayList<String>)intent.getSerializableExtra("Registered");
Log.i("3.CheckIntent","Receive Registered "+ CourseRegistered);
CourseMap=(HashMap<String, Course>)intent.getSerializableExtra("HashMap");
}
传递数据去上一个Activity
如果不需要重启上一个Activity,那就是返回数据,intent用setResult返回数据,而不是新建的intent传递数据
public boolean onKeyDown(int keyCode, KeyEvent event) {
Intent intent=new Intent();
intent.putExtra("CoursesRegistered",CourseRegistered);
setResult(RESULT_OK,intent);
finish();
return super.onKeyDown(keyCode, event);
}