onResponse回调方法改型android中的空上下文
我有一段对话。当我点击OK按钮时,我对我的api执行一个改造调用,如下所示onResponse回调方法改型android中的空上下文,android,android-activity,callback,retrofit,Android,Android Activity,Callback,Retrofit,我有一段对话。当我点击OK按钮时,我对我的api执行一个改造调用,如下所示 @Override public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) { int code = response.code(); if (code == 200) {
@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();
}
}
@覆盖
公共void onResponse(调用、响应){
int code=response.code();
如果(代码==200){
LoginResponse lr=response.body();
if(lr.getError()){
showtoos(getActivity(),“Error!Los datos son incorrectos.”);
}否则{
startActivity(新意图(getActivity(),ConfigGeneralActivity.class));
}
}否则{
Toast.makeText(getActivity(),“Error:+String.valueOf(code),Toast.LENGTH\u LONG.show();
}
}
在代码的这一部分,getActivity()为null
另一个选项是将上下文从oncreatedialog传递到此回调,但当我这样做时,我得到一个错误,即活动未附加到片段
我知道我可以实现Otto,但它对于我想要做的事情来说太复杂了。我只想从DialogFragment中的改装回调开始一个新的活动
有什么想法吗?谢谢 您需要运行NuithRead以获取OnResponse回调中的上下文 比如:
我认为您调用此方法的片段已销毁,因此,当方法响应时,该片段不会附加到活动。如果getActivity()为空,请尝试使用应用程序上下文null@Jai但是要调用applicationContext,我必须调用getActivity().getApplicationContext()和getActivity()is null..@MaximilianoPoggio:不,我的意思是您必须创建一个应用程序类,该类将为您提供全局上下文,而不是与已分发的活动相关的上下文。该答案无法解决问题,您正在使用getActivity()调用runOnUiThread(),getActivity可以为null
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
//your code
}
});
}
}