Java 获取nullpointerexception(尽管为其赋值)
我正在创建一个基本的android应用程序。我正在创建一个名为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
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()上
方法,但在myonCreate()中声明了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的引用,这通常不是您应该尝试的。如果你对其他布局进行充气,这是可以做到的,看看:那么你建议对其他布局进行充气吗?这真的取决于,你到底想实现什么?最好是完全地问一个新问题