内容视图未创建错误

时间:2014-03-02 21:36:13

标签: java android android-listview android-arrayadapter android-listfragment

我试图通过从服务器下载图像来实例化列表视图,然后在我的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("....");

}

1 个答案:

答案 0 :(得分:0)

添加片段和提交后设置适配器。 试试这个:

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