다운로더 응용 프로그램을 만들고 있는데 onCreateView 반환 섹션 이후에 자식 부모 오류가 발생했습니다. 많은 것을 시도했지만 아무 도움이되지 않았습니다. 내가 NPE를 가지고/또는 V를 제거하지만 V.getParent()가 null 인/ListFragment의 예외 : 지정된 자식에 이미 부모가 있습니다.
01-12 12:05:15.558: E/AndroidRuntime(10740): java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
또는 컨테이너를 제거 : 컴파일러가 말한다 후 ((ViewGroup)dlistView.getParent()).removeView(dlistView);
을 : 나는 시도했다.
어떤보기가 상위이고 어떤보기가 하위입니까?
코드 :
public static class DownloadingFragment extends ListFragment {
public static final String ARG_SECTION_NUMBER = "section_number";
public DownloadingFragment() {
}
@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View V = inflater.inflate (R.layout.list, null);
ListView dlistView = (ListView) V.findViewById(R.id.dlist);
List<DownloadInfo> downloadInfo = new ArrayList<DownloadInfo>();
downloadInfo.add(new DownloadInfo("File", 1000));
DownloadInfoArrayAdapter diaa = new DownloadInfoArrayAdapter(
getActivity().getApplication(),R.layout.list, downloadInfo);
dlistView.setAdapter(diaa);
return dlistView; // throw exception
}
}
//...
}
당신의 도움에 미리 감사드립니다.
편집 : 새로운 코드 : 당신이 (어딘가에 V의 레이아웃 트리에) 부모가있는 목록보기를 반환하기 때문입니다
public static class DownloadingFragment extends Fragment {
public static final String ARG_SECTION_NUMBER = "section_number";
public DownloadingFragment() {
}
@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View V = inflater.inflate (R.layout.list, null);
return V;
}
@Override
public void onStart() {
// TODO Auto-generated method stub
super.onStart();
ListView dlistView = (ListView) getView().findViewById(R.id.dlist);
List<DownloadInfo> downloadInfo = new ArrayList<DownloadInfo>();
downloadInfo.add(new DownloadInfo("File", 1000));
DownloadInfoArrayAdapter diaa = new DownloadInfoArrayAdapter(
getActivity().getApplication(),R.layout.list, downloadInfo);
dlistView.setAdapter(diaa);
}
}
//...
}
감사합니다. 내 하루를 저장했습니다. – velsorange