我试图通过从服务器下载图像来实例化列表视图,然后在我的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 :(得分:0)
添加片段和提交后设置适配器。 试试这个:
mTransaction.commit();
mFragmentManager.executePendingTransactions();
customListFragment.setListAdapter(listAdapter);