onPostExecute不允许我创建Toast消息

Awa*_*ran 2 java clipboard android imgur android-asynctask

请在上面看到这个上下文:匿名上传文件对象到Imgur API(JSON)给出了身份验证错误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();
}
Run Code Online (Sandbox Code Playgroud)

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

对于UploadToImgurTask类型,方法getApplicationContext()未定义

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

@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);
}
Run Code Online (Sandbox Code Playgroud)

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

Sho*_*uri 5

@Raghunandan是对的.所以,在UploadToImgurTask课堂上你可以:

private Context context;
//in constructor:
public UploadToImgurTask(Context context){
        this.context=context;
}
Run Code Online (Sandbox Code Playgroud)

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

Toast.makeText(context, "Uploaded! Link: " + result, Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)

希望这对你有所帮助.