我创建了一个父 Activity ,并将 fragment 添加到父 Activity 中。 但是我需要在父 Activity 中调用一个函数(HTTP 请求)并在 fragment Activity 中返回结果。但是我可以使用
从 fragment 访问函数 String stage = ((TabActivity)getActivity()).fetchStage(tabid,"12");
但该值未在 fragment 阶段变量中接收..
我的 TabActivity 函数:
public String fetchStage(String tabid,String userId){
Log.e("URL","http://35.184.41.163/phpmyadmin/app/demo/getstage.php?tabid="+tabid+"&userid="+userId);
RestClientHelper.getInstance().get("http://35.184.41.163/phpmyadmin/app/demo/getstage.php?tabid="+tabid+"&userid="+userId, new RestClientHelper.RestClientListener() {
@Override
public void onSuccess(String response) {
try {
Log.e("onSUcess Stage","onSUcess Stage");
JSONObject stageresponse = new JSONObject(response);
JSONArray posts = stageresponse.optJSONArray("stage");
for (int i = 0; i < posts.length(); i++) {
JSONObject post = posts.optJSONObject(i);
stage = post.optString("stage");
Log.e("onSUcess FOR","onSUcess FOR"+stage);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void onError(String error) {
Log.e("onError Stage","onError Stage");
stage = "stage1";
}
});
Log.e("STAGE",stage);
return stage;
}
最佳答案
您的其余客户端正在异步进行网络调用。所以,您的 onSuccess
会在一段时间后调用。您应该在您的 fragment 中声明一个公共(public)函数,并从 onSuccess
方法中调用它。
关于android - 在我的父 Activity 中调用一个方法并将一个值返回给 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49049370/