Android 无法在ListFragment中创建自定义ListView

Android 无法在ListFragment中创建自定义ListView,android,android-listfragment,Android,Android Listfragment,我导入了库[1]: 示例类扩展了ListActivity和所有工作。 我在扩展列表片段上重新ID,出现错误 public class SurveyGuestsList extends ListFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflat

我导入了库[1]:

示例类扩展了
ListActivity
和所有工作。 我在
扩展列表片段
上重新ID,出现错误

 public class SurveyGuestsList extends ListFragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.loadmore, null);

        arrayList = new ArrayList<SurveyGuestsListBean>();
        context = getActivity();
        new LoadDataTask().execute();

//        set a listener to be invoked when the list reaches the end
        ((LoadMoreListView) getListView())
                .setOnLoadMoreListener(new OnLoadMoreListener() {
                    public void onLoadMore() {
                        // Do the work to load more items at the end of list
                        // here
                        new LoadDataTask().execute();
                    }
                });
        return v;
    }
伊迪特: 我把代码移到这里,它成功了

@Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        ((LoadMoreListView) getListView())
                .setOnLoadMoreListener(new OnLoadMoreListener() {
                    public void onLoadMore() {
                        // Do the work to load more items at the end of list here
                        new LoadDataTask().execute();
                    }
                });
        super.onViewCreated(view, savedInstanceState);
    }

片段和活动具有不同的生命周期和回调。对于片段,onCreateView用于创建视图,在返回
v
之前,它不会附加到视图层次结构,因此不能在其中调用
getListView
。只需创建并返回视图,如下所示

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.loadmore, null);
    return v;
  }

将其余代码移到或稍后的回调中。

片段和活动具有不同的生命周期和回调。对于片段,onCreateView用于创建视图,在返回
v
之前,它不会附加到视图层次结构,因此不能在其中调用
getListView
。只需创建并返回视图,如下所示

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.loadmore, null);
    return v;
  }

将其余代码移到或稍后的回调中。

onCreateView
中,您正在使用
getListView()
。请参阅,
getListView()
返回
onCreateView
创建的视图。因此,您试图在
onCreateView()返回之前使用它。因此,错误“尚未创建内容视图”。

尝试在
onCreateView()中使用
v
而不是
getListView()


在您的
onCreateView
中,您正在使用
getListView()
。请参阅,
getListView()
返回
onCreateView
创建的视图。因此,您试图在
onCreateView()返回之前使用它。因此,错误“尚未创建内容视图”。

尝试在
onCreateView()中使用
v
而不是
getListView()


下面是ListActivity的post代码示例。除了父类ListFragment不是ListActivity之外,我在代码中不做任何更改,我假设您知道Activity和片段之间的区别。要使活动正常工作,请调用setContentView()为活动提供一个视图。我想你没有设置它我不理解你。我现在有一个片段。我正需要它。我在代码中做错了什么?是的,我的loadmorexml说“呈现问题”@Alex是的,你是对的,视图没有创建。我假设了其他的东西。下面是ListActivity的post代码示例。除了父类ListFragment不是ListActivity之外,我在代码中不做任何更改,我假设您知道Activity和片段之间的区别。要使活动正常工作,请调用setContentView()为活动提供一个视图。我想你没有设置它我不理解你。我现在有一个片段。我正需要它。我在代码中做错了什么?是的,我的loadmorexml说“呈现问题”@Alex是的,你是对的,视图没有创建。我在想别的事。
((LoadMoreListView)v).setonLoadMoreListener(...);