首页 文章

创建微调器时的空指针

提问于
浏览
0

为什么这段代码:

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 之外的布局进行膨胀,然后在我找到所有 Views 之后直接移动,但它仍然提供空指针异常 .

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

2 回答

  • 0

    你的Spinner myStates 为空 . 确保在 fragment_assets.xml 中有一个id为 bi_spinner 的微调器,它应该正确实例化 .

  • 2

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

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

相关问题