gpt4 book ai didi

java - this.getApplication()).getQuery() 总是返回 null

转载 作者:行者123 更新时间:2023-11-29 02:32:18 24 4
gpt4 key购买 nike

大家下午好!我正在 Android Studio 中开发一个搜索系统,但我是 Java 语言的初学者,我的错误可能很愚蠢。我想帮助理解两件事。第一:为什么我不能访问 this.getApplication()).setQuery(query); 里面的 onQueryTextSubmit 第二。为什么放置 HomeActivity.this.getApplication() 它不确认错误,也不访问 loadFirstPage 中的 query 的值到底是什么?

((MyApplication) this.getApplication()).setQuery(null);

// listening to search query text change
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
// loadFirstPage(builder,query);
((MyApplication) HomeActivity.this.getApplication()).setQuery(query);
return false;
}

@Override
public boolean onQueryTextChange(String query) {
// loadFirstPage(builder,query);
((MyApplication) HomeActivity.this.getApplication()).setQuery(query);
return false;
}
});

String s = ((MyApplication) this.getApplication()).getQuery();
loadFirstPage(builder,s);
return true;
}

提前致谢

最佳答案

您应该分析您的代码流。如果您的代码启动,您设置监听器(图中的 1. 和 2.),但它们不会被调用。 (你只设置它们..)

之后,将执行 getQuery,返回 null,因为您的 onQueryTextSubmitonQueryTextChange 是未在 getQuery 之前调用。

如果您的监听器被触发,则将设置查询,但之前已执行 getQuery

enter image description here

如果你想要查询,你可以添加一个按钮并在按钮按下时执行 getQuery 的代码。在您的情况下,我认为最好的方法是在第一次启动时使用常量值初始化 s

关于java - this.getApplication()).getQuery() 总是返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48930166/

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