onPostExecute不允许我创建Toast消息

时间:2013-05-23 20:22:00

标签: java android android-asynctask clipboard imgur

请在上面查看此内容:Anonymous Uploading File object to Imgur API (JSON) gives Authentication Error 401(如果有人有兴趣,它有doInBackground()方法的代码)

使用AsyncTask类,我将图像上传到Imgur。上传过程在doInBackground()方法中完成。它返回指向onPostExecute的String链接,该链接应以Toast消息的形式显示链接。

@Override
protected void onPostExecute(String result) 
{
    super.onPostExecute(result);
    Toast.makeText(getApplicationContext(), "Uploaded! Link: " + result, Toast.LENGTH_SHORT).show();
}

但是,这样做会产生以下错误:

方法getApplicationContext()未定义类型UploadToImgurTask

尝试将返回字符串复制到剪贴板会产生类似的问题。

@Override
protected void onPostExecute(String result) 
{
    super.onPostExecute(result);
    ClipboardManager clipboard = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE); 
    ClipData clip = ClipData.newPlainText("label", "Text to copy");
    clipboard.setPrimaryClip(clip);
}

方法getSystemService(String)未定义类型UploadToImgurTask

3 个答案:

答案 0 :(得分:5)

@Raghunandan是对的。因此,在您的UploadToImgurTask课程中,您可以:

private Context context;
//in constructor:
public UploadToImgurTask(Context context){
        this.context=context;
}

然后在onPostExecute中,你可以简单地使用:

Toast.makeText(context, "Uploaded! Link: " + result, Toast.LENGTH_SHORT).show();

希望这会对你有所帮助。

答案 1 :(得分:1)

代替getApplicationContext(),如果它从Activity扩展,则使用AsyncTask的Parent类名称和“.this”,如 MyActivity.this 否则使用 getActivity()。希望你的问题能够解决这个问题

答案 2 :(得分:0)

试试这段代码

public static void pushprofList(Activity context){
 static Context = mConext;

protected void onPostExecute(String result) {

      Toast toast=Toast.makeText(mConext,"Succefully Updated Profile",Toast.LENGTH_LONG);
             toast.show();

    }
  }

这完全可以工作并显示吐司信息。