0

我已经使用这个 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。
...

4

0 回答 0