-1

我正在尝试将 ListFragment 添加到 Gingerbread 中的 Activity 中,但是在创建 Activity 并且没有堆栈跟踪时,Android 会崩溃。我已经验证我正在使用兼容性库导入。这是我的 ListFragment 代码:

import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.*;

public class ListViewFragment extends ListFragment {
  @Override
  public void onActivityCreated(Bundle savedInstanceState) {
    List listData = getListData().

    setListAdapter(new ListViewAdapter(getActivity(), listData));
  }

  class ListViewAdapter extends BaseAdapter implements ListAdapter {
    .
    .
    .
  }    
}

我也试过:

ListView listView = getListView();
listView.setAdapter(new ListViewAdapter(getActivity(), listData);

代替具有相同结果的 setListAdapter() 调用。

当我从一个 Fragment 扩展并使用 ListView 扩展布局文件时,它工作正常。当我尝试在 ListFragment 中使用固有的 ListView 时,似乎有些不同。

任何见解将不胜感激。

4

2 回答 2

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

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
        // Set up your list in here
}
于 2012-05-11T16:28:46.870 回答
0

在 onCreateView 中尝试比 onActivityCreated 更好。

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View v = super.onCreateView( inflater, container, savedInstanceState );
    List listData = getListData().
    setListAdapter(new ListViewAdapter(getActivity(), listData));  
    return v;
}//met
于 2012-05-11T16:07:59.373 回答