지금 이틀 동안이 문제가 남아 있지만, 나는 LaunchpadSectionFragment
을 단편 A로, onClick 이벤트에서 별도의 클래스에서 다른 단편 (B
)을 호출했습니다. ListFragment
으로 확장되는 VideoPlayerFragment
이 호출되어 표시됩니다.안드로이드 - 사용자 정의 어레이 어댑터 조각 안팎에서 호출되지 않음
문제 :
내가 프래그먼트를 클릭하면 그 조각 B가, 단편 B 안에리스트 뷰 포함 열립니다 - onCreateView()
에에 다음, 데이터베이스에서 LoadAllProducts
에 의해 채워집니다 반환 된 레코드를로드하는 사용자 정의 배열 어댑터를 호출 listView에. 이제 때때로 단편 B가 빈 화면을 표시 한 다음 이전 단편 (A)으로 돌아가서 B로 돌아 가면 ListView가 표시됩니다. 운이 좋다면 처음 Frag B가로드되면 listView가 표시됩니다. 나는 이것으로 고투하고있다. 고려해 주셔서 감사합니다.
public class CollectionDemoActivity extends FragmentActivity {
public static class DemoObjectFragment extends Fragment {
public static class LaunchpadSectionFragment extends ListFragment {
//onClick event opens another class which
//Extends another Fragment List
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.replace(R.id.contentFragment, fragment1, fragMainGroups);
transaction.addToBackStack(fragMainGroups);
transaction.commit();
}
}
}
VideoPlayerFragment.java
public class VideoPlayerFragment extends ListFragment {
public void onCreate(Bundle e){
super.onCreate(e);
productsList = new ArrayList<HashMap<String, ?>>();
db = new DatabaseHandler(getActivity().getBaseContext());
mContext = getActivity();
Log.d("Inside", "onCreate");
//this task will populate to get Data from database
//I checked in logcat and there are rows returned.
LoadAllProducts task = new LoadAllProducts();
task.execute();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//This custom array adapter is not sometimes called, sometimes not
//It really happens, I not sure with the reason. I also put some displays
//logs and sometimes it will execute the code, sometimes does not.
MySimpleArrayAdapter adapter = new MySimpleArrayAdapter(
mContext, productsList,R.layout.load_groups_activity_listview, FolderNameGroups, selectedId);
setListAdapter(adapter);
}
}
전후에 실행되고 있는지 확인 내
AsyncTask
에onPostExecute()
안에 내MySimpleArrayAdapter
을 넣어야 할 데이터는'onCreateview()'가 끝나기 전에 데이터를 리턴하지 않을 것이라고 가정하는 것이 안전합니다. 그러면 어댑터는 빈'productsList'를 의지하게됩니다. 작업이 끝나면'onPostExecute()'에서 무엇을합니까? – Luksprog예! 고맙습니다. 내가 한 것처럼 onCreateView에 내 맞춤 arrray 어댑터를 호출하는 것이 중요하지 않다는 것을 깨달았습니다. 그래서 내가 한 일은, 커스텀 배열이 호출되어야하는'onPostExecute()'에 어댑터를 넘겼습니다. – rahstame