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;
}
}
}