Android:如何从活动访问更新另一个活动的私有变量
我想要做那样的事情,首先,有一个MainActivity存储ArrayList中的课程,这些课程由listview显示。之后,我通过到另一个被称为ShowDetailActivity with startActivity()的活动,当我单击列表视图元素时显示课程细节。然后,我传递给另一个名为EditCourseActivity的活动,以编辑由ShowDetailActivity显示的课程。问题是,当我想编辑课程时,我必须访问MainActivity的Arraylist(私有),但我无法传递startActivity(),因为MainActivity确实重新启动(重新安装),这就是为什么没有arraylist课程。问题是如何从EditCourseActivity访问MainActivity的数组列表以显示更新的课程?Android:如何从活动访问更新另一个活动的私有变量
储存在一个单独的类
public class CourseHolder{
public static CourseHolder instance=null;
public static CourseHolder getInstance(){
if(instance==null){
instance=new CourseHolder();
}
return instance;
}
private Course courses[];
private CourseHolder(){
courses=new Course[10];
}
public void setCourse(int index, Course course){
courses[index]=course;
}
public Course[] getCourses(){
return courses;
}
}
在EditCourseActivity过程中的信息,编辑后,存储在CourseHolder
的副本MainActivity.onResume(更新课程信息),调用的ListView。 setAdapter(null),然后使用CourseHolder中的数据刷新它
作为一般答案:将数据从其表示中分离出来。您可以通过多种方式实现这一目标:
- 辛格尔顿包装您的数组列表
- 要执行Android专用:包装您的数组中的ContentProvider
- 使用Android SDK中的SQL数据库支持
感谢您的回答,是的,我知道ContentProvider和SQLite数据库是解决方案,但到这里我无法使用它们。 – user3751548 2014-12-06 15:35:34
感谢你的回答帕特里克,现在我正在处理你的解决方案。如果我有问题,我会再次询问你的答案。 – user3751548 2014-12-06 15:37:13
再次感谢您的关注,您的解决方案对实践很好,我会用它来解决问题。祝你今天愉快。 – user3751548 2014-12-06 16:32:51
请投票了,谢谢! – 2014-12-06 16:41:35