从片段获取当前活动 [英] Get current activity from fragment

查看:85
本文介绍了从片段获取当前活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有此类用于通过android发送电子邮件

I have this class for sending email with android

    public class SendMailTask extends AsyncTask {

    private ProgressDialog statusDialog;
    private Activity sendMailActivity;

    public SendMailTask(Activity activity) {
        sendMailActivity = activity;

    }

    protected void onPreExecute() {
        statusDialog = new ProgressDialog(sendMailActivity);
        statusDialog.setMessage("Getting ready...");
        statusDialog.setIndeterminate(false);
        statusDialog.setCancelable(false);
        statusDialog.show();
    }

    @Override
    protected Object doInBackground(Object... args) {
        try {
            Log.i("SendMailTask", "About to instantiate GMail...");
            publishProgress("Processing input....");
            GMail androidEmail = new GMail(args[0].toString(),
                    args[1].toString(), (List) args[2], args[3].toString(),
                    args[4].toString());
            publishProgress("Preparing mail message....");
            androidEmail.createEmailMessage();
            publishProgress("Invio email in corso, sarai ricontattato da un nostro operatore per la conferma");
            androidEmail.sendEmail();
            publishProgress("Email Sent.");
            Log.i("SendMailTask", "Mail Sent.");
        } catch (Exception e) {
            publishProgress(e.getMessage());
            Log.e("SendMailTask", e.getMessage(), e);
        }
        return null;
    }

    @Override
    public void onProgressUpdate(Object... values) {
        statusDialog.setMessage(values[0].toString());

    }

    @Override
    public void onPostExecute(Object result) {
        statusDialog.dismiss();
    }
}

在不使用片段的情况下,我在MainActivity中使用以下代码发送邮件

Without using fragments i use the following code in the MainActivity to send a mail

new SendMailTask(MainActivity.this).execute(fromEmail,
                   fromPassword, toEmailList, emailSubject, emailBody);

但是现在我需要使用Fragment,此时我得到一个错误:"MainActivity.this不是封闭类"

But now i need to use Fragment and i get an error at this point: "MainActivity.this its not an enclosing class"

我该如何解决此错误?

P.S .:对不起,我的英语不好:D

P.S.: Sorry for my bad english :D

推荐答案

更改以下代码

new SendMailTask(MainActivity.this).execute(fromEmail,
                   fromPassword, toEmailList, emailSubject, emailBody);

收件人

new SendMailTask(getActivity()).execute(fromEmail,
                   fromPassword, toEmailList, emailSubject, emailBody);

有关更多详细信息,请检查以下链接.

For more details you can check below link.

从片段访问活动

这篇关于从片段获取当前活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆