0

我想通過從服務器下載圖像實例化列表視圖,然後在我的asynkTask類的onPostExecute()中調用setImages(),這是我的主要活動。之後mTransaction.commit()崩潰,我得到內容查看未創建錯誤

這裏是我的setImages方法錯誤消息 「尚未創建內容查看」:

public void setImages(List<Bitmap> result) 
{ 
    log("Entered setImages()"); 

    ListViewAdapter listAdapter = new ListViewAdapter(this, R.layout.list_item,  R.id.imageView, result); 
    customListFragment = new customListFragment(); 
    customListFragment.setListAdapter(listAdapter); 

    FragmentTransaction mTransaction = mFragmentManager.beginTransaction(); 
    mTransaction.add(R.layout.activity_main, customListLineFragment); 
    mTransaction.commit(); 

} 

這裏是我的logcat:

03-02 16:10:16.265: E/AndroidRuntime(2623): FATAL EXCEPTION: main 
03-02 16:10:16.265: E/AndroidRuntime(2623): Process: com.example.test, PID: 2623 
03-02 16:10:16.265: E/AndroidRuntime(2623): java.lang.IllegalStateException: Content view not yet created 
03-02 16:10:16.265: E/AndroidRuntime(2623):  at android.app.ListFragment.ensureList(ListFragment.java:386) 
03-02 16:10:16.265: E/AndroidRuntime(2623):  at android.app.ListFragment.setEmptyText(ListFragment.java:290) 
03-02 16:10:16.265: E/AndroidRuntime(2623):  at com.example.test.listFragment.onAttach(listFragment.java:28) 
03-02 16:10:16.265: E/AndroidRuntime(2623):  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:849) 
03-02 16:10:16.265: E/AndroidRuntime(2623):  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062) 
03-02 16:10:16.265: E/AndroidRuntime(2623):  at android.app.BackStackRecord.run(BackStackRecord.java:684) 
03-02 16:10:16.265: E/AndroidRuntime(2623):  at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447) 
03-02 16:10:16.265: E/AndroidRuntime(2623):  at android.app.FragmentManagerImpl$1.run(FragmentManager.java:443) 
03-02 16:10:16.265: E/AndroidRuntime(2623):  at android.os.Handler.handleCallback(Handler.java:733) 
03-02 16:10:16.265: E/AndroidRuntime(2623):  at android.os.Handler.dispatchMessage(Handler.java:95) 
03-02 16:10:16.265: E/AndroidRuntime(2623):  at android.os.Looper.loop(Looper.java:136) 
03-02 16:10:16.265: E/AndroidRuntime(2623):  at android.app.ActivityThread.main(ActivityThread.java:5017) 
03-02 16:10:16.265: E/AndroidRuntime(2623):  at java.lang.reflect.Method.invokeNative(Native Method) 
03-02 16:10:16.265: E/AndroidRuntime(2623):  at java.lang.reflect.Method.invoke(Method.java:515) 
03-02 16:10:16.265: E/AndroidRuntime(2623):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
03-02 16:10:16.265: E/AndroidRuntime(2623):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
03-02 16:10:16.265: E/AndroidRuntime(2623):  at dalvik.system.NativeStart.main(Native Method) 

這裏是CustomListFragment類

public class CustomListFragment extends ListFragment { 



@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setListAdapter(new ArrayAdapter<ImageView>(getActivity(), android.R.layout.simple_list_item_1)); 

} 

@Override 
public void onAttach(Activity activity) { 
    super.onAttach(activity); 

    this.setEmptyText("...."); 

} 

回答

0

添加片段後設置適配器,提交。 試試這個:

mTransaction.commit(); 
mFragmentManager.executePendingTransactions(); 
customListFragment.setListAdapter(listAdapter); 
+0

我仍然收到崩潰和錯誤消息「內容視圖尚未創建」。我應該在下載數據之前添加片段視圖嗎? –

+0

你可以發佈你的customListFragment onAttach和onCreateView方法嗎? – FrankenBel

+0

我貼在上面 –