【问题标题】:ListView in ViewPager FragmentViewPager 片段中的 ListView
【发布时间】:2014-05-19 13:40:46
【问题描述】:

我正在尝试让 ListView 在 android ViewPager Fragment 中工作。到目前为止,我的这段代码会导致应用程序崩溃 - 我不知道为什么!

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

}

【问题讨论】:

    标签: java android android-fragments android-listview android-viewpager


    【解决方案1】:

    您必须在 listView.setAdapter(adapter); 上获得 NPE,因为 listView 未正确初始化。

    你需要改变:

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

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

    并确保您在fragment_directory 中有list id。

    您的视图是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);
    

    但您的代码是正确的,问题出在其他地方。

    【讨论】:

    • 太棒了!应用不再崩溃,但 ListView 为空白。
    • 问更多细节的新问题,因为这必须工作,新问题与这篇文章无关,你的代码很好,你必须发布活动类和片段类以用于调试你的代码
    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多