3

予期しない結果を生成しているコードを次に示します。誰かが私がここで間違っていることを教えてください

 public static class LaunchpadSectionFragment extends Fragment {

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

        ListView moviesList= (ListView) rootView.findViewById(R.id.movies_list);

        ArrayAdapter<String> moviesAdapter;
        List<String> Testing = new ArrayList<String>();
        Testing.add("Hey");
        Testing.add("Hey");
        Testing.add("Hey");
        Testing.add("Hey");
        moviesAdapter= new MyAdapter(getActivity(),android.R.layout.simple_list_item_1,Testing);
        moviesList.setAdapter(moviesAdapter);


return rootView;
}
4

1 に答える 1

12

多くのドキュメントを見て回った後、最終的にこれに対する回避策を見つけました。これは私がしたことです

@Override
    public void onActivityCreated(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onActivityCreated(savedInstanceState);

            super.onActivityCreated(savedInstanceState);

            Log.d("CreatedActivity", "LaunchpadFragment");
            ListView moviesList= (ListView) getActivity().findViewById(R.id.movies_list);
            // Gets the ListView from the View list of the parent activity
            // Gets a CursorAdapter

            ArrayAdapter<String> moviesAdapter;
            List<String> Testing = new ArrayList<String>();
            Testing.add("Hey");
            Testing.add("Hey Do");
            Testing.add("Hey It");
            Testing.add("Hey Please");
            moviesAdapter= new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1, Testing);
            moviesList.setAdapter(moviesAdapter);
}

ここでオーバーライドされたメソッドに注意してください。

onActivityCreated

Android ドキュメントの状態

フラグメントのビューが、データ アダプターによって埋められるリストビューである場合は、onActivityCreated メソッドをオーバーライドして、そこで埋めるべきです。

ただし、このブロック引用へのドキュメント リンクはありません:|

于 2013-05-24T10:49:49.707 に答える