gpt4 book ai didi

android - onResponse回调方法改造android中的空上下文

转载 作者:太空宇宙 更新时间:2023-11-03 10:38:01 25 4
gpt4 key购买 nike

我有一个 DialogFragment。当我单击“确定”按钮时,我会像这样对我的 api 执行改造调用

 @Override
public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {
int code = response.code();
if (code == 200) {
LoginResponse lr = response.body();
if (lr.getError()) {
Utils.showToast(getActivity(), "Error! Los datos son incorrectos.");
} else {
startActivity(new Intent(getActivity(), ConfigGeneralActivity.class));
}
} else {
Toast.makeText(getActivity(), "Error: " + String.valueOf(code), Toast.LENGTH_LONG).show();
}

}

在这部分代码中,getActivity() 为空。

另一种选择是将上下文从 oncreateddialog 传递到此回调,但是当我这样做时,我收到错误消息,指出 Activity 未附加到 fragment 。

我知道我可以实现 Otto,但它对于我想做的事情来说太复杂了。我只想从 DialogFragment 内的 retrofit 回调开始新 Activity 。

有什么想法吗?谢谢!

最佳答案

您需要运行OnUiThread 来获取OnResponse 回调中的上下文

喜欢:

@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
//your code
}
});
}
}

关于android - onResponse回调方法改造android中的空上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39715331/

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