Android 为什么对EditText使用NullPointerException?
对不起,可能是初学者的问题。这是my MainActivity.java的一部分:Android 为什么对EditText使用NullPointerException?,android,nullpointerexception,Android,Nullpointerexception,对不起,可能是初学者的问题。这是my MainActivity.java的一部分: public class MainActivity extends Activity{ ... EditText et101 = (EditText) findViewById(R.id.editText101); ... public myOwnClass(String my_id){ et000.setText(my_id) } 为什么我在my
public class MainActivity extends Activity{
...
EditText et101 = (EditText) findViewById(R.id.editText101);
...
public myOwnClass(String my_id){
et000.setText(my_id)
}
为什么我在myOwnClass中使用et101
时会获得NPE?这就是错误:
Caused by: java.lang.NullPointerException
错误在该行中,其中
EditText et101=(EditText)findViewById(R.id.editText101)
is您可以将EditText
声明为类级变量,并在onCreate
像这样的
public class MainActivity extends Activity {
EditText et101;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.yourActivity);
et101 = (EditText) findViewById(R.id.editText101);
...
}
public void myOwnClass(String my_id){
et101.setText(my_id)
}
}
中的本指南可能是您的好参考您的xml文件中是否有id为“editText101”的EditText?是的,我的xml文件中有editText101。如前所述,错误发生在java文件的开头:
EditText et101=(EditText)findViewById(R.id.editText101)代码>可能有问题??没有重复:(您在MainActivity中定义了et000?但我的函数不在oncreate中。因此在oncreate中这样做没有意义,还是我错了。我的函数在公共类MainActivity Extendes Activity{…}
没错,但活动启动时发生的第一件事是onCreate
。您试图在任何函数外部调用findViewById
,这会导致NPE。在onCreate
中初始化所有视图是一个很好的做法,这样您以后可以从任何地方访问它们。顺便说一下,是de>myOwnClass
应该是一个方法吗?您需要指定一个返回类型,或者如果它不返回任何内容,void
,比如public void myOwnClass(String my_id){et101.setText(my_id);}
ok,我完成了。所有的findViewByID
都在onCreate
中,我在main活动开始时声明了所有内容,扩展了活动
。但是这没有用。现在NPE在btnSave11.setOnClickListener(新OnClickListener()
,不在编辑文本上。但是按钮是声明的,也是findViewById
,按钮在xml中。现在有什么错误?:`(顺便说一句:是的,返回类型是无效的。我只是忘了在这里写它。你能更新你的原始问题以获得所有新代码吗?