Android 构造函数EventUpdater(EventDetails,Event)未定义

Android 构造函数EventUpdater(EventDetails,Event)未定义,android,Android,我得到了以下编译时错误。下面我指出了错误行 构造函数EventUpdater(EventDetails,Event)未定义 EventDetails.java: package com.steph.event; import android.app.Activity; import android.support.v4.app.Fragment; public class EventDetails extends Fragment { private Event eve; p

我得到了以下编译时错误。下面我指出了错误行

构造函数EventUpdater(EventDetails,Event)未定义

EventDetails.java:

package com.steph.event;

import android.app.Activity;
import android.support.v4.app.Fragment;

public class EventDetails extends Fragment {
    private Event eve;
    private Users usr;

@Override
       public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState) {
         View v = inflater.inflate(R.layout.event_details, container, false);
     return v;
    }

private void saveEventDetails() {

String strAuthenticator = "email=" + usr.getEmail() + "&sig="
                + usr.getPassword();
        if (isNew) // call the POST method to create new event
            (new EventUpdater(this, eve)).execute("?" + strAuthenticator,  ----> Compile Error
                    "POST");
        else
            // call the PUT method to update the current event
            (new EventUpdater(this, eve))                  ----->Compile Error
                    .execute("?" + strAuthenticator, "PUT");

    }

}
package com.steph.event;

public class EventUpdater extends AsyncTask<String, Void, String> {

private final ProgressDialog dialog;
    private Activity mContext;
    JSONObject oJSONObject = new JSONObject();
    Event oEvent = new Event();

    /*
     * Default constructor to set the current activity and event object as a
     * reference
     */
    public EventUpdater(Activity ct, Event pry) {
        this.mContext = ct;
        this.oEvent = pry;
        dialog = new ProgressDialog(mContext);
    }
  }
EventUpdater.java:

package com.steph.event;

import android.app.Activity;
import android.support.v4.app.Fragment;

public class EventDetails extends Fragment {
    private Event eve;
    private Users usr;

@Override
       public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState) {
         View v = inflater.inflate(R.layout.event_details, container, false);
     return v;
    }

private void saveEventDetails() {

String strAuthenticator = "email=" + usr.getEmail() + "&sig="
                + usr.getPassword();
        if (isNew) // call the POST method to create new event
            (new EventUpdater(this, eve)).execute("?" + strAuthenticator,  ----> Compile Error
                    "POST");
        else
            // call the PUT method to update the current event
            (new EventUpdater(this, eve))                  ----->Compile Error
                    .execute("?" + strAuthenticator, "PUT");

    }

}
package com.steph.event;

public class EventUpdater extends AsyncTask<String, Void, String> {

private final ProgressDialog dialog;
    private Activity mContext;
    JSONObject oJSONObject = new JSONObject();
    Event oEvent = new Event();

    /*
     * Default constructor to set the current activity and event object as a
     * reference
     */
    public EventUpdater(Activity ct, Event pry) {
        this.mContext = ct;
        this.oEvent = pry;
        dialog = new ProgressDialog(mContext);
    }
  }
package com.steph.event;
公共类EventUpdater扩展了AsyncTask{
私人对话;
私人活动mContext;
JSONObject oJSONObject=新的JSONObject();
Event oEvent=新事件();
/*
*默认构造函数将当前活动和事件对象设置为
*参考文献
*/
公共事件更新程序(活动ct、事件窥探){
this.mContext=ct;
this.oEvent=撬动;
dialog=新建ProgressDialog(mContext);
}
}
我不知道如何解决这个编译错误。任何人都可以帮我解决这个问题。

您正在传递“this”,它指的是片段而不是活动,所以在构造函数参数上传递活动上下文

EventUpdater(this, eve)) 
解决为

EventUpdater(getActivity(), eve))

希望这对您有所帮助:)

片段中尝试这种方法

  new EventUpdater(getActivity(), eve).execute("?" + strAuthenticator,"POST");

谢谢你的作品很好,几分钟后我会接受你的答案。现在它显示出一些错误。