当我向CheckBox
添加ArrayList
时,我的程序崩溃了。我无法看到我在哪里或如何宣布CheckBox
。任何帮助表示赞赏。
public class Para_First_Fragment extends Fragment {
View view;
ArrayList<CheckBox> ethChecks;
CheckBox cb_white, cb_black, cb_asian, cb_native, cb_other;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.para_first_fragment, container, false);
cb_white = (CheckBox) view.findViewById(R.id.fpc_white_cb);
cb_black = (CheckBox) view.findViewById(R.id.fpc_black_cb);
cb_asian = (CheckBox) view.findViewById(R.id.fpc_asian_cb);
cb_native = (CheckBox) view.findViewById(R.id.fpc_natives_cb);
cb_other = (CheckBox) view.findViewById(R.id.fpc_other_cb);
ethChecks.add(cb_white); <-- Line 43
ethChecks.add(cb_black);
ethChecks.add(cb_asian);
ethChecks.add(cb_native);
ethChecks.add(cb_other);
return view;
}
}
当片段加载时崩溃,我的logcat给了我以下错误
11-24 14:54:36.961: E/AndroidRuntime(3399): java.lang.NullPointerException
11-24 14:54:36.961: E/AndroidRuntime(3399): at com.example.myproject.Para_First_Fragment.onCreateView(Para_First_Fragment.java:43)
第43行在上面的代码中注释。现在CheckBox
没有被“检查”,但我无法想象这一点很重要。我有一种感觉,我在我应该之前/之后声明或添加它。谢谢你的帮助!
答案 0 :(得分:3)
您从未向ethChecks分配ArrayList
,因此它仍然为空!
直接在声明字段的位置初始化它:
List<CheckBox> ethChecks = new ArrayList<CheckBox>();
或在解除引用ethChecks
之前在某处插入以下行:
ethChecks = new ArrayList<CheckBox>();
答案 1 :(得分:2)
您还必须初始化ArrayList
ArrayList<CheckBox> ethChecks = new ArrayList<CheckBox>();