public void displayGridItem() {

     l_adapter = new AdapterListView(this, temp);
     lv_main.setAdapter(l_adapter);
  
     l_adapter_a = new AdapterListViewTypeA(this, temp);
     lv_main_a.setAdapter(l_adapter_a);
  
     l_adapter_b = new AdapterListViewTypeB(this, temp);
     lv_main_b.setAdapter(l_adapter_b);
  
 }

 

위와 같은 함수로 초기화도 해주고~ 매번 temp의 내용이 바뀔때마다 계속 부르는 함수입니다

temp는 전역변수로 ArraryList<E> 구요.. 위 세 어댑터는 모두 베이스어댑터를 상속받고 있습니다.

 

여기서 두번째 줄에 l_adapter 를 생성할때 같이 넘기는 temp 를 어댑터 생성자에서

ArraryList<E> t = temp; 이런식으로 넣고 안의 몇개를 t.remove(INDEX); 로 지워버리고 리스트에 뿌려줍니다.

그리고 나서 위 소스의 두번째 어댑터, 세번째 어댑터에서는 remove 하지 않습니다.

 

그냥 상식적으로는 temp를 서로 다른 클래스로 만들어져있는 세개의 어댑터로 콜오브밸뷰 형식으로 보내니깐

당연히 temp의 내용이 그대로야 한다고 생각했는데요...

 

첫번째 어댑터에서 remove 해서 뿌려진 LIST가 다른 어댑터에서 똑같이 나오네요;;

디버깅 해보니 첫번때 어댑터 이후 temp가 내용 변하더라구요;;

 

이게 뭔 상황인지;; 어댑터를 여러개 쓰면 안되는 건가요? 제 패드에 리스트가 총 세개가 보여야하는데..

조언을 부탁드립니다!