gpt4 book ai didi

java - 通过对象调用时 findViewById 抛出 null

转载 作者:行者123 更新时间:2023-12-02 05:35:15 25 4
gpt4 key购买 nike

我在main.java中有一个函数它使用一些 UI 元素,例如 spinner 到 textview。

public void updateNearByPeople() {
reportEventPeopleAroundSpinner = (Spinner) findViewById(R.id.peopleAround);

}

当我从类内调用此函数时,它工作正常。

但是当我从另一个 class2.java 调用这个函数时通过object findViewById抛出java.lang.NullPointerException

如果我创建函数及其中的所有变量 staticclass2.java 调用电话时它也可以正常工作但它不适用于对象调用。

我该如何解决这个问题并使对象能够感知上下文?

main.java :

protected void onCreate(final Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.main_view);

mainAppContext = this;
Main mainObj=new Main();
gMapObj.initiateMap(mainAppContext,mainObj, mapFrag);
}

class2.java :

public boolean initiateMap(Context appContext, Main mainObj, MapFragment mapFrag) {
mainAppContext = appContext;
mainAppObject = mainObj;

mainAppObject.updateNearByPeople();
}

最佳答案

Main mainObj=new Main();

你不能那样做。 Activity 需要经历其生命周期,以构建其 View 层次结构。如果只是通过new操作符实例化它,它的onAttach或onCreate方法都不会被调用。这意味着您也无法访问资源和 View

关于java - 通过对象调用时 findViewById 抛出 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25041625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com