Java 将当前活动传递给类时获取NullPointerException
我正在创建一个名为gm的对象,并将类中名为a的属性设置为活动Java 将当前活动传递给类时获取NullPointerException,java,android,Java,Android,我正在创建一个名为gm的对象,并将类中名为a的属性设置为活动 //This is in the Activity GameConfiguration gm = new GameConfiguration(); gm.setA(this); 然后在课堂上我就这样做了 public class GameConfiguration { private Activity as; public TextView tx; public void setTextsTextViews(){
//This is in the Activity
GameConfiguration gm = new GameConfiguration();
gm.setA(this);
然后在课堂上我就这样做了
public class GameConfiguration {
private Activity as;
public TextView tx;
public void setTextsTextViews(){
Activity b = getA();
tx = (TextView) b.findViewById(R.id.category);
tx.setText("Test");
//
}
public Activity getA() {
return as;
}
public void setA(Activity a) {
this.as = a;
}
}
GameConfiguration类是2个类的父类,在这2个类中,我只是调用方法setTextsTextViews,我认为这会起作用,但在这一行中我得到了一个NullPointerException错误
tx = (TextView) b.findViewById(R.id.category);
我不明白的是当我这么做的时候
public void setTextsTextViews(Activity a){
tx = (TextView) a.findViewById(R.id.category);
tx.setText("Test");
//
}
将活动从子类传递到它确实有效,我不知道我对所有这些都是新手,如果您能提供帮助,谢谢您您将获得nullPointerException,因为视图包含R.id.category在这些时刻不显示。将视图而不是活动传递给GameConfiguration类,并确保正确的布局是充气的
希望它能帮助你 在实际调用
setTextsTextViews()
之前,是否确实在onCreate()
方法中调用了setContentView()
?只需使用调试器即可。可能是b
或R.id.category
为null
。找出哪一个是空的,然后看看原因。是的,b是空的,这是我没有得到的,为什么如果之前设置了它,它是空的?传递一个视图有效,传递文本视图我想更改它完美,但是我想要的是传递活动,这样我就可以在GameConfiguration类中找到TextView,并使用2个子类中的方法。当您想要更改TextView时,包含TextView的布局会显示出来吗?我想问题是因为布局没有膨胀。好吧,我有点修补了它,在我创建GameConfiguration对象的活动中,我也在调用一个子类的方法,所以我所做的是将活动传递给该方法,在该方法中调用setA()并在GameConfiguration类中设置活动,它成功了,我不知道你是否明白,但你帮了我,谢谢你。