Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.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,我正在创建一个名为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(){

我正在创建一个名为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(){

    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类中设置活动,它成功了,我不知道你是否明白,但你帮了我,谢谢你。