0

我试图获得一个ListView工作在android ViewPagerFragment。但是,我迄今为止的代码导致应用程序崩溃 - 我不知道为什么!在ViewPager片段中的ListView

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; 
    } 

} 

回答

1

必须在listView.setAdapter(adapter);因为listView不正确初始化得到NPE。

你需要改变:

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

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

,并确保你有list ID在fragment_directory

你的看法是rootView,所以你需要找到ListView

//编辑

请更改

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

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

,但你的代码是正确的,问题是一些地方比。

+0

太棒了!该应用程序不再崩溃,但ListView是空白的。 –

+0

用更多的细节提出新的问题,因为这必须工作,并且新问题与本文无关,您的代码没问题,您必须发布活动类和片段类以用于调试代码 –