Android 为什么对EditText使用NullPointerException?

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

对不起,可能是初学者的问题。这是my MainActivity.java的一部分:

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中。现在有什么错误?:`(顺便说一句:是的,返回类型是无效的。我只是忘了在这里写它。你能更新你的原始问题以获得所有新代码吗?