是不是可以访问类型为MainActivity的封闭实例?

时间:2014-05-04 19:01:25

标签: android android-fragments android-listview android-context

我有一个片段包含它自己的布局。这个布局有一个ListView。 现在我尝试为这个ListView添加一个适配器,如下所示:

public static class LatestFragment extends Fragment {
    ListView listView;
    String[] values = {
            "Test", "Test2"
    };

    public LatestFragment() {

    }
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_latest, container, false);
        listView = (ListView) rootView.findViewById(R.id.fragment_latest_listview1);
        listView.setAdapter(new CustomListAdapter(getActivity(), values));
        return rootView;
    }
}

但我一直在

收到错误
new CustomListAdapter(getActivity(), values)
Eclipse告诉我以下内容:

No enclosing instance of type MainActivity is accessible. Must qualify the
allocation with an enclosing instance of type MainActivity (e.g. x.new A() 
where x is an instance of MainActivity).

为什么我不能为ListView设置适配器?

1 个答案:

答案 0 :(得分:4)

我的猜测是CustomListAdapter未被定义为static内部类,因此无法在另一个static内部类中使用它。

另外,请摆脱构造函数,或者至少链接到超类构造函数。