我正在尝试做类似的事情,首先,有一个MainActivity存储在ArrayList中的课程,这些课程由listview显示。之后,我传递给另一个活动,它被称为ShowDetailActivity,带有startActivity()来显示单击列表视图元素时的课程详细信息。然后,我转到另一个名为EditCourseActivity的活动来编辑ShowDetailActivity所显示的课程。问题是,当我想编辑课程时,我必须访问MainActivity的Arraylist(私有)但我不能通过startActivity(),因为MainActivity确实重新启动(重新安装),这就是为什么没有课程关于arraylist。问题是如何从EditCourseActivity访问MainActivity的arraylist以显示更新的课程?
答案 0 :(得分:1)
将课程信息存储在单件类
中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中的数据刷新它
答案 1 :(得分:0)
作为一般答案:从其表示中分离数据。您可以通过多种方式实现这一目标: