Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取nullpointerexception(尽管为其赋值)_Java_Android - Fatal编程技术网

Java 获取nullpointerexception(尽管为其赋值)

Java 获取nullpointerexception(尽管为其赋值),java,android,Java,Android,我正在创建一个基本的android应用程序。我正在创建一个名为mathexpresionTV的TextView对象,并将其赋值给我希望它引用的TextView的id值 TextView mathExpressionTV = (TextView) findViewById(R.id.mathexpressiontextview); 我还有一个按钮,如果用户按下它,它会在textview上显示1 Button oneButton = (Button) findViewById(R.id.butt

我正在创建一个基本的android应用程序。我正在创建一个名为
mathexpresionTV
TextView
对象,并将其赋值给我希望它引用的TextView的id值

TextView mathExpressionTV = (TextView) findViewById(R.id.mathexpressiontextview);
我还有一个按钮,如果用户按下它,它会在textview上显示1

 Button oneButton = (Button) findViewById(R.id.button1)
    oneButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               mathExpressionTV.append("0");
            }
        });
我将在整个类中使用
mathExpressionTV
,因此我将它作为一个全局变量,而不是在我的
onCreate()上
方法,但在my
onCreate()中声明了
oneButton

这是错误输出:
由以下原因引起:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.view.view android.view.Window.findViewById(int)”

您可以将其声明为全局,但需要在
onCreate
中转换为
TextView
。您不能在活动中的方法之外使用
findViewById

TextView mathExpressionTV;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.yourActivity);

    mathExpressionTV = (TextView) findViewById(R.id.mathexpressiontextview);

    ...
}
您有3种选择:

  • onCreate
    方法中使用
    findViewById
  • textView
    创建一个全局变量,并在
    onCreate
    方法中分配它
  • 传递活动对象,或获取活动对象并像这样使用:
    activity.findViewById

  • 您在哪个函数中执行此代码?哦,好的,谢谢您修复了它。如果其他视图对象不在当前活动的布局中,您知道我们是否可以引用其他视图对象吗?例如,如果layout a.xml中有一个textview,而我当前的活动是C.java,它将内容设置为B.xml,那么就能够从a.xml中获取rextview的引用,这通常不是您应该尝试的。如果你对其他布局进行充气,这是可以做到的,看看:那么你建议对其他布局进行充气吗?这真的取决于,你到底想实现什么?最好是完全地问一个新问题