当前位置: 首页 > 知识库问答 >
问题:

调用getActivity()时引发NullPointerException的setUserVisibleHint()

牟稳
2023-03-14

我已经创建了3个片段,在一个ViewPager中。我试图仅当特定片段对用户可见时才从服务器获取数据。为此,我在setUserVisibleHint()中调用了web服务方法。但是当我在该方法内部使用getActivity()时,我会得到NullPointerException。我如何确保我只加载一次数据并且当它对用户可见时?代码如下:

@Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        if(isVisibleToUser && !_areLecturesLoaded){
            if(getActivity() == null){ //this is always null
                Log.e("Fragment1","No Activity");
            }else{
                getLatLong();
            }
            _areLecturesLoaded = true;
        }
    }

    private void getLatLong() {
        mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
                // The next two lines tell the new client that “this” current class will handle connection stuff
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                //fourth line adds the LocationServices API endpoint from GooglePlayServices
                .addApi(LocationServices.API)
                .build();
    }

我已经验证了在setUserVisibleHint()之后调用onAttach()方法。在附加活动之前,setUserVisibleHint()将启动。

共有1个答案

窦哲彦
2023-03-14

在调用onattach()时保留一个活动引用,并在任何地方使用它,而不是像下面这样使用getActivity():

@Override 
public void onAttach(Activity activity) {
            super.onAttach(activity);
            mActivity = activity;
            }
 类似资料:
  • 当我调用EmailSenderController上的addHtml()方法将html文件文本添加到html编辑器时,会引发错误。 类似的线程,但例外是我没有像他那样初始化@fxml inject控件:JavaFX FileChooser抛出错误(可能很容易修复,但仍然混乱) 主类

  • 我目前正在尝试用JDA编写一个非常基本的Discord bot,在试图将代码整齐地分为一个Main类、、和类时,我遇到了一个问题。 如果接收到事件,主类将添加EventListener来调用MessageHandler,然后如果在命令之前看到bot前缀,则分支到CommandHandler。 问题是,当它试图用调用CommandHandler时,会抛出一个NullPointerException。

  • 问题内容: 我正在尝试使用IntelliJ 12.1.3使用JPA测试Hibernate 4.2.1.Final,但出现以下错误。 一切似乎都设置正确(我让IntelliJ生成了映射),由于我对Hibernate和JPA的经验为零,所以我无所适从。 为什么要启用NPE? 主类: 错误: Persistance.xml 问题答案: 该消息向我表明它无法连接到数据库。仔细检查您的连接字符串,并确保您的

  • 问题内容: 有人看过此消息吗? 在Hibernate论坛上进行了一些讨论,但对于问题可能是什么却不太清楚。 我们正在使用JPA和Spring 3.0.5运行Hibernate 3.6.9。这个异常只是在两个版本之间弹出(就像一天前一样,今天在部署时会引起问题)。这可能与某些错误配置的orm文件有关吗?我们为模型提供了orm.xml文件,为命名查询提供了文件。 问题答案: 因此,我们发现了问题。不幸

  • 问题内容: 我正在使用Spring Boot,Spring Data REST,Hibernate(5.2.12.Final),并将存储库公开为REST服务。 我有一个引发NullPointerException的查询问题,我不明白原因。我正在通过HTTP请求调用此方法(Spring Data REST公开了此方法)。 这是代码: 这是堆栈跟踪: 我确实没有发现该查询有任何问题。我是在做错什么还是

  • departamentdaoimpl.java departamentservice.java DepartamentServiceImpl.java