2013-07-04 6 views
4

OncreateView()에 처음으로 페이지를로드 할 때 작동하는 어댑터를 설정하십시오. 내가 다른 페이지로 가서 변경을하면이 조각으로 돌아와서 작동하지 않습니다. adapter.notifyDatasetchanged(). ";"어댑터가 작동하지 않습니다.

@Override 
public void onStart() { 
    super.onStart(); 
    groupItem.clear(); 
    childItem.clear(); 
    List<String> child_Category;child_Category=new ArrayList<String>(); 
    groupItem = obj_Listdatabase.fetchcategory(); 
    childItem.clear(); 
    ListIterator<String> iterator = groupItem 
      .listIterator(); 
    while (iterator.hasNext()) { 
     String categoryname = iterator.next(); 
     child_Category = new ArrayList<String>(); 
     child_Category = obj_Listdatabase 
       .fetchchildlist(categoryname); 
     childItem.add(child_Category); 
    } 

    adapter.notifyDataSetChanged(); 
} 
+0

adapter.notifyDataSetChanged(); 작동하지 않거나 불리지 않을 수 있습니까? 당신은 브레이크 포인트를 넣을 수 있습니까/로그 거기에 모든 전화가 있는지? – dors

+0

이 어댑터를 추가 할 때 = new CategoryExpandableAdapter (getActivity(), groupItem, childItem); expandlistview.setAdapter (adapter); 대신 adapter.notifyDataSetChanged(); 어떤 것이 제대로 작동하고 있습니까? – Satheesh

+0

BaseExpandableListAdapter를 호출하지 않습니다. – Satheesh

답변

0

하이 나는 이것에 대한 출력을 가지고 한 대신이

groupItem.addAll(obj_Listdatabase.fetchcategory()); 

나는 해당 어댑터에 대한 할당 문 (=)에서 참조를 변경하므로. 참고 대신 값만 저장하려면 addAll() 메서드를 사용합니다.

0

당신은 reaaaally 몇 가지 사용하지 않습니다, 더 깨끗하게 코드를 들여 쓰기를한다 예를 들어 같은 줄에. 그리고 당신은 확실히

당신은 또한에서 onCreate보기는 당신이 필요로하는 모든 어댑터 물건 onViewCreated처럼 다른 곳에서해야한다, 그래서 "뷰를 생성", 또는 onActivityCreated 더 적합 함을주의해야 있습니다 .. 문 제는 다른 곳이다 BaseExpandableListAdapter 사용할 수 있습니다


난 당신이 GetActivity()를 사용하여 어댑터의 생성자에서 당신은 활동 (문맥)에 대한 참조를 전달하기 때문에 어댑터가 조각에 가정 (단지 약간의 조언이다), 그룹 목록 및 하위 목록 .. ok

조각 onStart를 사용한다고 가정합니다. 공식 문서에서 :

Called when the Fragment is visible to the user. This is generally tied to Activity.onStart of the containing Activity's lifecycle. 

그래서 일반적으로이 방법을 onViewCreate, onViewCreated 후라고 등등 적어도 처음으로 코드가 실행 중입니다. 그래서이

당신이 adapter.notifyDataSetInvalidate()를 사용하려고하고 을 adapter.notidyDataSetChanged 했나요 괜찮아? 실제로 생성자하여 어댑터에 데이터를 전달하기 때문에 당신이 당신의 목록 를 업데이트 할 때


마지막으로 한가지, 어떻게 어댑터는 변화를 인식 할 수 있는가? 목록이 전역 (고정)입니까? adapter.notifyDataSetChanged을하기 전에() 당신이 어떤 세터와 어댑터에 목록 (그룹과 아이를) 통과해야

그렇지 않으면 ..

행운

관련 문제