2

请在此之前查看上下文:匿名上传文件对象到 Imgur API (JSON) 给出身份验证错误 401(如果有人感兴趣,它有 doInBackground() 方法的代码)

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

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

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

对于 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);
}

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

4

3 回答 3

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();

希望这对您有所帮助。

于 2013-05-23T20:38:31.063 回答
1

代替 getApplicationContext(),使用带有“.this”的 AsyncTask 的父类名,例如MyActivity.this,如果它是从 Activity 扩展的,否则使用getActivity()。希望你的问题可以通过这个解决

于 2013-05-23T21:19:59.957 回答
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();

    }
  }

这完全工作并显示吐司消息。

于 2015-08-05T06:40:34.340 回答