Search code examples
androidlistviewandroid-fragmentssupportmapfragment

Fill listview with the same method for Activity and SupportMapFragment


I filling a ListView with information from a webserver. In the Activity, my ListAdapeter is working perfectly, but when I'm trying to use it in a Fragment, I can't iniziallizate my adapter.

ListAdapter.java

public class ListAdapter extends BaseAdapter {

    MainActivity main;

    public ListAdapter(MainActivity main){
        this.main = main;
    }
    //Some methods.
}

MainActivity.java

public class ListReportsFragment extends SupportMapFragment {
    @Override
    public ListView list;
        public ListAdapter adapter;
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
            //.........
            list = (ListView) findViewById(R.id.list);
            adapter = new ListAdapter(this);
            list.setAdapter(adapter);

        }
//........
    }

There is working perfectly, but, when I try to use it in my Fragment:

ListReportsFragment

@Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        list = (ListView) getView().findViewById(R.id.list);
        adapter = new ListAdapter(new MainActivity());
        list.setAdapter(adapter); //This is the line 58
    }

I get the error java.lang.NullPointerExceptionlayout.ListReportsFragment.onActivityCreated(ListReportsFragment.java:58)


Solution

  • Change

    adapter = new ListAdapter(new MainActivity());
    

    to

    adapter = new ListAdapter(getActivity());