2014-11-05 4 views
0

데이터 관리에 대한 도움이 필요합니다. 바라기를 나는 이것을 충분히 잘 설명 할 수있다. 클래스 A에서 ArrayList를 만들고 인스턴스화하지만 클래스 B에 데이터를 표시하고 싶습니다.이 단계보다 조금 까다 롭고 단계를 설명해 드리겠습니다. 다른 클래스에서 ArrayList를 참조 하시겠습니까? Java/Android

나는 클래스 A에서

public static void setArray(ArrayList<String> list) { 
    ClassA.mList = list; 
} 

public static ArrayList<String> getArray() { 
    return mList; 
} 

동안, 나는 하나 개의 항목, mList.add ("항목") 내 배열을 채울 클래스 A의 일부 세터와 게터를 만들었습니다. 목록 (mList)에 항목이 생겼으므로 새 활동을 시작합니다.

Intent intent = new Intent(ClassA.this, ClassB.class); 
startActivity(intent); 

나는이 활동을 의도적으로 마쳤습니다. 클래스 B에 있었으므로 getter 메서드를 사용하여 배열의 첫 번째 항목을 인쇄하여 데이터가 지속되는지 테스트합니다.

System.out.println("Data persists? " + ClassA.getArray().get(0)); 

이 시점까지는 모든 것이 제대로 작동합니다. 하지만 이제는 Class B를 마치고 Class A로 돌아갑니다. 클래스 A에 onResume()을 추가하여 목록 (mList)에 다른 항목을 추가 한 다음 두 번째 Activity (Class B)를 다시 시작합니다. 그런 다음 재귀를 사용하여 arraylist에 두 항목이 있는지 확인합니다. 1이 있습니다. 또한 아무것도 인쇄 할 수 없으며, mList의 크기가 0이면 onResume을 체크인했습니다. 내 생각에 다시 인스턴스화 된 것입니다. 목록을 재설정 하시겠습니까?

활동을 종료 한 다음 다시 돌아온 후에 ArrayList에 데이터를 유지하려면 어떻게해야합니까? 나는 당신이 활동 사이의 비 정적 데이터를 공유 할 수 정적 인 방법을 사용하지 않아야 사전

답변

2

에 그 ArrayList에에

감사합니다 내가 클래스 A로 다시 돌아마다/업데이트 데이터를 추가 할 수 있어야합니다. 이 목적을 위해 데이터의 임시 저장소로 전달한 인 텐트를 사용하십시오. 예를 들어 당신이 제공 할 수 있습니다. putStringArrayListExtra()

+0

시도해보십시오. 제안 해 주셔서 감사합니다! – portfoliobuilder

관련 문제