Activity之间的数据传递

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);
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值