setAdapter()在ListFragment中返回null

时间:2013-10-21 02:01:15

标签: android android-fragments

所以我正在尝试为我正在制作的另一个应用程序制作基本前景 我只是试图让我的片段中的listView填充在屏幕上。 (要创建可滑动的标签视图)

我在这一行上不断收到nullPointerException:

List.setAdapter(Adapter);

这是我的全班:

public class List_View extends ListFragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.listviewtest, container, false);
    ListView List = (ListView) getActivity().findViewById(R.id.listView1); 

    List<HashMap<String, String>> Data = new ArrayList<HashMap<String, String>>();
    {
        HashMap<String, String> temp1 = new HashMap<String, String>();
        temp1.put("Item", "Item 1");
        Data.add(temp1);
        HashMap<String, String> temp2 = new HashMap<String, String>();
        temp2.put("Item", "Item 2");
        Data.add(temp2);
        HashMap<String, String> temp3 = new HashMap<String, String>();
        temp3.put("Item", "Item 3");
        Data.add(temp3);
    }

    SimpleAdapter Adapter = new SimpleAdapter(this.getActivity(),
            Data, R.layout.custom_row_view, new String[] {
                    "Item" }, new int[] { R.id.text1});

    List.setAdapter(Adapter);

    List.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {

            switch (position) {

            case 1:
                AlertDialog.Builder dlgAlert = new AlertDialog.Builder(
                        getActivity());
                dlgAlert.setMessage("Set Message Text");
                dlgAlert.setTitle("Set Message Title");
                dlgAlert.setNeutralButton("View info",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int which) {

                                dialog.dismiss();
                            }
                        });

                dlgAlert.setCancelable(false);
                dlgAlert.create().show();

                break;
            }
        }
    });

    return rootView;
}
}

据我所知,这不应该返回null ..

1 个答案:

答案 0 :(得分:2)

我认为你的膨胀操作返回null。检查此行

ListView List = (ListView) getActivity().findViewById(R.id.listView1);  

您应该从片段的父视图中膨胀ListView,而不是从父活动中膨胀。

应该是这样的

ListView List = (ListView) rootView.findViewById(R.id.listView1);  and make sure that