2011-09-21 66 views
-8

我认为这段代码有问题。有人可以检查代码中是否有错误吗?Java/Android:AsyncTask类型的参数数量不正确

 ImageView userPicture = (ImageView) findViewById(R.id.userPicture); 

    private synchronized void downloadAvatar(){ 
     AsyncTask <Bitmap> task = new AsyncTask <Bitmap>(){ 

      @Override 
      public void onPreExecute() { 
       //Do nothing 
      } 

      @Override 
      public Bitmap doInBackground() { 
       URL fbAvatarUrl = null; 
       Bitmap fbAvatarBitmap = null; 
       try { 
        fbAvatarUrl = new URL("http://graph.facebook.com/"+userID+"/picture"); 
        fbAvatarBitmap = BitmapFactory.decodeStream(fbAvatarUrl.openConnection().getInputStream()); 
       } catch (MalformedURLException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
       return fbAvatarBitmap; 
      } 

      @Override 
      public void taskComplete(Bitmap result) { 
       fbUserAvatar.setImageBitmap(result); 
      } 

     }; 
     task.execute(); 
    } 

我发现了一个错误的行与此代码:

AsyncTask <Bitmap> task = new AsyncTask <Bitmap>() 

的错误信息是:

的类型参数的AsyncTask数目不正确;它不能用参数参数化

+8

“我在阅读问题时出现错误” – richardwiden

+1

请给我们指定的行上出现什么错误。这会让生活更容易理解这个问题。另外,当问这类问题时,请尽量提交最少量的代码来理解目的。它编译也很好。 –

+0

描述\t资源\t路径\t位置\t类型 类型AsyncTask的参数数量不正确;它不能被参数化参数 \t ProfileActivity.java \t/code/src/com/marakana/tutomaps \t line 203 \t Java问题 –

回答

4

AsyncTask需要三个参数:参数,进度和结果。它应该是AsyncTask< Bitmap, Void, Void >你的情况;和doInBackground应采取Bitmap... args

+0

我复制了这个问题的答案,它不起作用。 “http://stackoverflow.com/questions/4461150/android-and-facebook-how-to-get-picture-of-logged-in-user”I getting error描述\t资源\t路径\t位置\t类型 错误的数量AsyncTask类型的参数;它不能与参数 \t ProfileActivity.java \t /代码/ src目录/ COM/marakana/tutomaps \t线203 \t的Java问题 –

+0

@PatrikAxelsson在[您使用的答案](代码http://stackoverflow.com/a进行参数化/ 4461736/648313)包含错误。我刚刚编辑它以使其可编辑,并留下描述错误原因的评论。 – Idolon