为了账号安全,请及时绑定邮箱和手机立即绑定

ew MyAsyncTask(); 报错

MyAsyncTask task =new MyAsyncTask(); 报错:没有任何类型 ImageTest 的外层实例可访问。必须用类型 ImageTest 的外层实例(例如,x.new A(),其中 x 是 ImageTest 的实例)来限定分配。 

和视频的代码好像一样,请问为什么会报错?

MainActivity.java的代码:

public class MainActivity extends Activity {


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

MyAsyncTask task =new MyAsyncTask();

task.execute();


}


public void loadImage(View view) {

startActivity(new Intent(this, ImageTest.class));

}

}

ImageTest.java里的代码:

public class ImageTest extends Activity{

private ImageView mImageView;

private ProgressBar mProgressBar;

private static String URL="http://www.bz55.com/uploads/allimg/150126/140-150126114I6.jpg";

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.image);

mImageView=(ImageView) findViewById(R.id.image);

mProgressBar=(ProgressBar) findViewById(R.id.progressbar);

//设置传递进去的参数

new MyAsyncTask().execute(URL);

}

class MyAsyncTask extends AsyncTask<String,Void,Bitmap>{


@Override

protected void onPreExecute() {

// TODO Auto-generated method stub

super.onPreExecute();

mProgressBar.setVisibility(View.VISIBLE);

}

@Override

protected void onPostExecute(Bitmap bitmap) {

// TODO Auto-generated method stub

super.onPostExecute(bitmap);

mProgressBar.setVisibility(View.GONE);

mImageView.setImageBitmap(bitmap);

}

@Override

protected Bitmap doInBackground(String... params) {

// TODO Auto-generated method stub

//获取传递进来的参数

String url=params[0];

Bitmap bitmap=null;

URLConnection connection;

InputStream is;

try {

connection=new URL(url).openConnection();

is=connection.getInputStream();

BufferedInputStream bis=new BufferedInputStream(is);

//通过decodeStream解析输入流

bitmap=BitmapFactory.decodeStream(bis);

is.close();

bis.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

//将Bitmap作为返回值

return bitmap;

}

}

}


正在回答

5 回答

new MyAsyncTask()   .execute(URL)写在含有imageTest 页面中的oncreate ()方法中,MainActivity 中就不要再写new MyAsyncTask()   .execute();删掉这行 就ok


0 回复 有任何疑惑可以回复我~

我也是这个问题

0 回复 有任何疑惑可以回复我~

估计是你在mainifest文件没有注册

0 回复 有任何疑惑可以回复我~

这代码好晃眼,包到代码块里吧。

0 回复 有任何疑惑可以回复我~

我用 android studio 可以正常运行。。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android必学-AsyncTask基础
  • 参与学习       40912    人
  • 解答问题       99    个

了解Android中AsyncTask的使用方法,掌握异步线程的使用

进入课程

ew MyAsyncTask(); 报错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信