我有一个带有抽屉导航和一些 fragment 的应用程序。
在我的 MainActivity 中,我获取了设备的实际经纬度位置。
在抽屉中的第一个 fragment 中,我从 Web 服务器上的数据库中加载一些内容到 AsyncTask 中
对于此请求,我需要 MainActivity 中的纬度和经度变量。
但是我如何从 AsyncTask 中的 MainActivity 调用 getLag() 方法或获取我的 2 个变量?
我需要在 doInBackround() 中调用的 Methode updateJSONdata 中的变量
public class LoadEvents extends AsyncTask<Void, Void, Boolean>{
Activity activity;
ListFragment LF;
String TAG;
public LoadEvents(Activity A, ListFragment lf, String TAG) {
this.TAG = TAG;
this.LF = lf;
this.activity = A;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
MySwipeRefreshLayout srl = (MySwipeRefreshLayout) LF.getView().findViewById(R.id.srl);
if(srl!=null){
srl.setRefreshing(true);
}
}
@Override
protected Boolean doInBackground(Void... arg0) {
updateJSONdata(TAG, activity);
return null;
}
最佳答案
fragment onAttach()
MainActivity mainActivity;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mainActivity = (MainActivity) activity;
}
在 fragment 中调用这样的 Activity 方法
if (mainActivity != null)
latLng = mainActivity.getLatLng(); //getLatLng() is a method defined in MainActivity
关于java - 将变量从 Activity 传递到 AsyncTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30066441/