我已经使用这个 android 代码来选择一个复选框:
View view_web = ((ListView) findViewById(R.id.listView3)).getChildAt(2);
CheckBox input_web = (CheckBox)view_web.findViewById(R.id.checkbox);
我还有一个 EditText 字段。没有输入,它就可以工作。但是如果有输入,它就会崩溃。你知道,什么可能导致这个错误?
我的日志猫:
06-20 17:20:23.123: E/AndroidRuntime(670): FATAL EXCEPTION: main
06-20 17:20:23.123: E/AndroidRuntime(670): java.lang.NullPointerException
06-20 17:20:23.123: E/AndroidRuntime(670): at com.example.test.MainActivity.onMenuItemSelected(MainActivity.java:140)
06-20 17:20:23.123: E/AndroidRuntime(670):
带有复选框的行是导致错误的代码。
这就是我尝试获取 EditText 代码的方式:
View view_a =( (ListView) findViewById(R.id.listView1)).getChildAt(0);
EditText input_a = (EditText)view_a.findViewById(R.id.inputfield);
方法代码:
public boolean onMenuItemSelected(int featureId, MenuItem item) {
View view_a =( (ListView) findViewById(R.id.listView1)).getChildAt(0);
EditText input_a = (EditText)view_a.findViewById(R.id.inputfield);
View view_b =( (ListView) findViewById(R.id.listView1)).getChildAt(1);
EditText input_b = (EditText)view_b.findViewById(R.id.inputfield);
....
View view_web = ((ListView) findViewById(R.id.listView3)).getChildAt(0);
CheckBox input_web = (CheckBox)view_web.findViewById(R.id.checkbox);
View view_sms = ((ListView) findViewById(R.id.listView3)).getChildAt(1);
CheckBox input_sms = (CheckBox)view_sms.findViewById(R.id.checkbox);
如果 edittext 不为空,我只会得到 nullpointerexception。
...