网络请求 + imageloader
//异步任务
class MyTask extends AsyncTask<String, Integer, String> {
@Override
protected String doInBackground(String... params) {
//从网络获取数据
try {
URL url = new URL(params[0]);
System.out.println(params[0]+" llllllllll");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
int code = connection.getResponseCode();
if (code == 200) {
InputStream inputStream = connection.getInputStream();
String str;
StringBuilder builder = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
while ((str = reader.readLine()) != null) {
builder.append(str);
}
return builder.toString();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//更新UI
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
//获取请求的数据
if (s != null) {
Gson gson = new Gson();
DataBean bean = gson.fromJson(s, DataBean.class);
if (bean != null) {
list = bean.data;
if(list!=null){
MyAdapter adapter=new MyAdapter(MainActivity.this,list);
mylist.setAdapter(adapter);}
}
}
}
}
//ImageLoaderConfiguration:
是针对图片缓存的全局配置,主要有线程类、缓存大小、磁盘大小、图片下载与解析、日志方面的配置
getInstance()
得到ImageLoader的单例。通过双层是否为 null 判断提高性能
init(ImageLoaderConfiguration configuration)
初始化配置参数,参数configuration为ImageLoader的配置信息,包括图片最大尺寸、任务线程池、磁盘缓存、下载器、解码器等等。
实现中会初始化ImageLoaderEngine engine属性,该属性为任务分发器。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//设置初始化;
ImageLoaderConfiguration configuration=ImageLoaderConfiguration.createDefault(MainActivity.this);
ImageLoader.getInstance().init(configuration);
initView();
String url = "http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0";
MyTask task = new MyTask();
task.execute(url);
//传值
mylist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent=new Intent(MainActivity.this,DetailActivity.class);
DataBean.ResultBean bean=list.get(position);//(DataBean.ResultBean)parent.getAdapter().getItem(position);
intent.putExtra("img",bean.IMAGEURL);
intent.putExtra("title",bean.TITLE);
intent.putExtra("subtitle",bean.SUBTITLE);
intent.putExtra("time",bean.SHOWTIME);
intent.putExtra("name",bean.FROMNAME);
startActivity(intent);
//跳转之后接值
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
setContentView(R.layout.detail_layout);
initView();
Intent intent=getIntent();
String url=intent.getStringExtra("img");
String title=intent.getStringExtra("title");
String subtitle=intent.getStringExtra("subtitle");
String time=intent.getStringExtra("time");
String name=intent.getStringExtra("name");
ImageLoader.getInstance().displayImage(url,detail_img);
detail_name.setText(name);
detail_title.setText(title);
detail_subtitle.setText(subtitle);
detail_time.setText(time);