创建微调器时的空指针

时间:2013-06-05 19:02:35

标签: android arraylist spinner

为什么这段代码:

public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    view = inflater.inflate(R.layout.fragment_assets, container, false);

    List<String> states = new ArrayList<String>();

    String abs = "AL AK AZ AR CA CO CT DE FL GA HI ID IL IN "
            + "IA KS KY LA ME MD MA MI MN MS MO MT NE NV NH NJ NM NY NC ND OH OK "
            + "OR PA RI SC SD TN TX UT VT VA WA WV WI WY";

    for (String parts : abs.split(" ")) {
        states.add(parts);          
    }
    EditText store = (EditText) view.findViewById(R.id.store_input_ID);
    EditText phone = (EditText) view.findViewById(R.id.phone_input_ID);
    EditText address = (EditText) view.findViewById(R.id.address_input_ID);
    EditText city = (EditText) view.findViewById(R.id.city_input_ID);
    EditText zip = (EditText) view.findViewById(R.id.zip_input_ID);
    Spinner myStates = (Spinner) view.findViewById(R.id.bi_spinner);

    ArrayAdapter<String> aa = new ArrayAdapter<String>(getActivity(),
            android.R.layout.simple_spinner_dropdown_item, states);
    myStates.setAdapter(aa);
    return view;
}

在加载时崩溃并在此行给我一个空指针异常

myStates.setAdapter(aa);

我已经尝试移动我将ArrayArrayList声明放在我onCreate之外的第一次充气布局的位置,并在我找到所有{{1}后直接移动但它仍然提供空指针异常。

我似乎无法弄明白,我知道我错过了一些明显的东西。

2 个答案:

答案 0 :(得分:2)

您的微调器myStates为空。确保在bi_spinner中有一个标识为fragment_assets.xml的微调器,它应该正确实例化。

答案 1 :(得分:0)

尝试在setAdapter之前添加以下行:

aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);