package lll.com.as_httplx;
MainActivity页面
public class MainActivity extends AppCompatActivity {
String urlString = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
String urlBitmap = "https://img-my.youkuaiyun.com/uploads/201407/26/1406383265_8550.jpg";
String tag = "lv";
ArrayList<Product.DataBean> list = new ArrayList<Product.DataBean>();
private View listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找控件
listView = findViewById(R.id.list);
//异步
new MAsyncTask().execute(urlString);
}
private class MAsyncTask extends AsyncTask<String,Void,List<Product.DataBean>> {
@Override
protected List<Product.DataBean> doInBackground(String... strings) {
List<Product.DataBean> jsonString = Net.getJson(strings[0]);
return jsonString;
}
@Override
protected void onPostExecute(List<Product.DataBean> dataBeans) {
super.onPostExecute(dataBeans);
//把一个集合中的数据存到另一个集合中
list.addAll(dataBeans);
}
}
public class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder vh = new ViewHolder();
if (convertView == null){
convertView = View.inflate(MainActivity.this,R.layout.item,null);
vh.tv = convertView.findViewById(R.id.tv);
convertView.setTag(vh);
}else {
vh = (ViewHolder) convertView.getTag();
}
//绑定数据
Product.DataBean dataBean = list.get(position);
vh.tv.setText(dataBean.getNews_summary());
ImageView iv = convertView.findViewById(R.id.iv);
//异步
new BitmapAsyncTask(iv).execute(urlBitmap);
return convertView;
}
}
class ViewHolder{
public TextView tv;
}
private class BitmapAsyncTask extends AsyncTask<String,Void,Bitmap>{
ImageView iv;
public BitmapAsyncTask(ImageView iv) {
this.iv = iv;
}
@Override
protected Bitmap doInBackground(String... strings) {
Bitmap bitmap = Net.getBitmap(strings[0]);
return bitmap;
}
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
iv.setImageBitmap(bitmap);
}
}
}
Net页面
class Net {
public static List<Product.DataBean> getJson(String string) {
try {
URL url = new URL(string);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
//获取请求状态码
int responseCode = urlConnection.getResponseCode();
if (responseCode == 200){
//获取数据流
InputStream inputStream = urlConnection.getInputStream();
//缓冲流
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String temp = “”;
//拼接字符串
StringBuilder stringBuilder = new StringBuilder();
//按行读取
while ((temp = bufferedReader.readLine())!=null){
stringBuilder.append(temp);
}
//开始解析
Gson gson = new Gson();
Product json = gson.fromJson(String.valueOf(stringBuilder), Product.class);
List<Product.DataBean> data = json.getData();
return data;
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public static Bitmap getBitmap(String string) {
try {
URL url = new URL(string);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
//获取请求状态码
int responseCode = urlConnection.getResponseCode();
if (responseCode == 200){
//获取文件流
InputStream inputStream = urlConnection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
return bitmap;
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}