확장 가능한 목록보기의 그룹에서 항목에서 하위 항목을 삭제할 때 문제가 있습니다. 문제는 내 그룹이 확장되어 있고 ListView 어댑터에서 "notifyDataSetChanged"를 실행할 때 "getChildView"라는 자식이 삭제되는 것입니다. 나는 크기가 이제 0 인 배열에 액세스하고 Out of Bounds 예외를 얻습니다. "getChildrenCount"가 0을 반환하기 때문에 Expandable Listview가 자동으로 뷰를 삭제한다고 가정합니다. 그룹이 축소되면이 문제가 표시되지 않습니다. 더 이상 자식이 없으므로 List에는 자식 뷰가 표시되지 않습니다.Expanpandable ListView 그룹의 마지막 하위 항목을 삭제할 때 충돌이 발생합니다.
내 질문은 여기에 내 코드의 예입니다 당신이 확장 ListView에
의 확장 그룹의 마지막 아이를 삭제하는 방법입니다. 조건은 그룹이 확장되어 있고 모든 하위 항목을 삭제했으며이 함수가 여전히 호출되고 있다는 것을 이해합니다.
// This Function used to inflate child rows view
@Override
public View getChildView(
int groupPosition,
int childPosition,
boolean isLastChild,
View convertView,
ViewGroup parentView)
{
Trade t = objArray[groupPosition];
View childView = convertView;
if(childView == null)
{
LayoutInflater inflater = LayoutInflater.from(client);
childView = inflater.inflate(R.layout.item_textview, parentView, false);
ChildViewHolder childViewHolder = new ChildViewHolder();
childViewHolder.itemTextView = (TextView)childView.findViewById(R.id.itemTextView);
childView.setTag(childViewHolder);
}
ChildViewHolder childViewHolder = (ChildViewHolder)childView.getTag();
childViewHolder.itemTextView.setText("Term: " + t.getTradeTerms().get(childPosition));
return childView;
}
@Override
public int getChildrenCount(int groupPosition)
{
return objArray[groupPosition].getTradeTerms().size();
}
아니요. 도움이되지 않습니다. 어댑터에 전달 된 List를 통해 다른 창에서 데이터를 제거합니다. Exp를 발생시키는 adapter.notifyDataSetChanged()를 호출합니다. 다시 구성 할 목록보기. 이 실험을 시도하십시오. 확장 된 그룹에서 하위를 삭제하십시오. getChildView가 호출됩니다. 하위 데이터가 이미 삭제 된 경우이 이벤트를 어떻게 처리합니까? – user3383795
다른 활동에서 데이터를 제거하면 공용 배열 목록을 사용하고 adatpter.notifyDataSetChaged(); –