프래그먼트가 포함 된 프래그먼트 활동이 있고 프래그먼트가 일부 데이터를 다운로드하는 Asynctask를 시작하고 어댑터 및 목록 뷰의 일부 값을 업데이트하는 콜백 메소드를 내 프래그먼트에 구현했습니다. 내가 가진 문제는 다음과 같다 : 이것은 내 onCreateView 방법 (중요한 부분)입니다 :이전 프래그먼트를 참조하는 콜백 메소드
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
list=(PullToRefreshListView)v1.findViewById(R.id.listapull);
adapterList=new ListViewAdapter(secciones, mContext);
}
AsyncTask를이는 doInBackground을() 메소드는 다음 포스트에 트리거 실행, 실행 계속 실행되는 동안 장치를 회전 할 때 리스너를 만들고 콜백 메서드를 내 조각으로 시작하면이 메서드는 내 어댑터와 내 목록보기에 대한 이전 참조를 갖습니다.
방향 변경이 발생했을 때 조각과 그 내용이 올바르지 만 다시 작성되지만 누구도 콜백 메소드가 어댑터에 대한 참조를 유지하는 이유와 오리엔테이션 변경 전에 만들어진 위치를 알 수 있습니까?
편집 :
asyncRefresh = new PullRefreshTask(taskContext, mContext, secciones);
asyncRefresh.setUpdatePull2RefreshListener(this);
asyncRefresh.execute();
사용자 프레스는 버튼을 AsyncTask를 청취자 오래된 조각을 설정 한 경우와 때 방향 변경을 :
나는이 같은 AsyncTask를을 실행하는 버튼이 있습니다 asynctask가 실행되는 동안 발생합니다. 활성화 된 콜백 메소드가 새로 생성 된 프래그먼트 메소드의 메소드라고 생각했지만 더 이상 확실하지 않습니다.
편집 2 : 내가 콜백 방법은 기존의 조각을 요구 받고 처음 편집에 말했듯이
나는 내 문제를 해결했다. 그래서 제가 한 일은 "정보"라는 이름의 또 다른 클래스의 변수에 내 AsyncTask를 저장하는 것이었다과에에 이런 짓을 내가보기를 만들 :
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
list=(PullToRefreshListView)v1.findViewById(R.id.listapull);
adapterList=new ListViewAdapter(secciones, mContext);
PullRefreshTasktask task = Info.getAsyncTask();
asyncRefresh = task;
asyncRefresh.setUpdatePull2RefreshListener(this);
}
내
내 조각의 새로운 기준을 설정이 방법setUpdatePull2RefreshListener() 실행의 AsyncTask를
방법
디버거 화면에서 볼 수 있듯이,'adapterList'는'Fragment' 내부 클래스의 인스턴스입니다. 문제가 될 수 있을까요? – ernazm