简体   繁体   中英

ListView in ViewPager Fragment

I'm trying to get a ListView working in an android ViewPager Fragment . This code I have so far however causes the app to crash - I'm not sure why!

public class DirectoryFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_directory, container, false);

        ListView listView = (ListView) getActivity().findViewById(R.id.list);

        String[] values = new String[] {"Viewer 1",
                                        "Viewer 2",
                                        "Viewer 3"
                                       };

        ArrayAdapter adapter = new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, android.R.id.text1, values);

        listView.setAdapter(adapter);

        return rootView;
    }

}

You must get NPE on listView.setAdapter(adapter); because listView is not initialised correctly.

You need to change:

 ListView listView = (ListView) getActivity().findViewById(R.id.list);

to

ListView listView = (ListView) rootView .findViewById(R.id.list);

and make sure you have list id in fragment_directory .

Your view is rootView , so you need that for finding ListView .

//Edit

please change

ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, android.R.id.text1, values);

to

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, values);

but your code is correct, problem is some where else.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM