Android等效于/在ActionBarActivity中的getActivity()

MrL*_*ond 7 android android-asynctask android-activity android-actionbaractivity

就像我的标题所说的那样,我正在寻找getActivity()ActionBarActivity班上相当于我的课程Android project.

我想ActivityAsyncTask声明对象中传递一个参数,因为我Activity在自定义AsyncTask扩展类中使用了一个对象

这是我项目的一个示例最简单的代码

public class EventCreator extends ActionBarActivity {

private Context context;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_even_creator);
    View v = getLayoutInflater().inflate(R.layout.activity_even_creator,null);
    this.context = this.getBaseContext();

    final Button createButton = (Button)findViewById(R.id.createEventButton);
    createButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            AsyncTask<Void,Void,Boolean> eventCreatorSend = new SendEvents(/* here need activity object */);
            eventCreatorSend.execute();
        }
    });

}

    class SendEvents extends AsyncTask<Void,Void,Boolean> {

        public Activity act;

        SendEvents(Activity a) {
            this.act = a;
        }

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            ((LinearLayout)act.findViewById(R.id.layout_loader_create_event)).setVisibility(View.VISIBLE);
        }

        @Override
        protected Boolean doInBackground(Void... params) {

            SystemClock.sleep(5000);
            return true;
        }

        @Override
        protected void onPostExecute(Boolean params) {
            if (params){

                ((LinearLayout)act.findViewById(R.id.layout_loader_create_event)).setVisibility(View.GONE);
                act.finish();
            }
            else {
                ((LinearLayout)act.findViewById(R.id.layout_loader_create_event)).setVisibility(View.VISIBLE);
                Toast.makeText(act,"Fail to send event",Toast.LENGTH_SHORT).show();
            }
        }


    };
}
Run Code Online (Sandbox Code Playgroud)

在一段时间内,我想getParent()ActionBarActivity类中使用,但它返回一个null对象.那么如何在ActionBarActivity课堂上获得我想要的Activity对象?

小智 12

尝试使用nameofactivity.this getActivity()

我总是getActivity()Fragments活动和.this中使用任何其他类型的Activity.