//适配
public class ListAdapter extends BaseAdapter{
private Context context;
private List<NewsBean.NewslistBean>list;
public ListAdapter(Context context, List<NewsBean.NewslistBean> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list==null ? 0:list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView==null){
convertView=View.inflate(context,R.layout.item_layout,null);
holder=new ViewHolder();
holder.imageView=convertView.findViewById(R.id.t_image);
holder.textView01=convertView.findViewById(R.id.t_titlte);
holder.textView02=convertView.findViewById(R.id.t_time);
convertView.setTag(holder);
}else {
holder= (ViewHolder) convertView.getTag();
}
holder.textView01.setText(list.get(position).getTitle());
holder.textView02.setText(list.get(position).getCtime());
//设置图片
ImageLoader.getInstance().displayImage(
list.get(position).getPicUrl(),holder.imageView
);
return convertView;
}
class ViewHolder{
ImageView imageView;
TextView textView01;
TextView textView02;
}
}
//主actiivty
public class MainActivity extends AppCompatActivity {
private static final String TAG = MainActivity.class.getSimpleName();
public static String url="https://api.tianapi.com/wxnew/?key=48a7d7193e11bd2dd4a683b6e2f90a4f&num=10";
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*if (Build.VERSION.SDK_INT>Build.VERSION_CODES.M){
requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 200);
}
*/
listView=findViewById(R.id.one_listview);
new NetTask().execute(url);
}
class NetTask extends AsyncTask<String,Void,String>{
@Override
protected String doInBackground(String... strings) {
try {
URL u=new URL(strings[0]);
HttpURLConnection connection= (HttpURLConnection) u.openConnection();
connection.setConnectTimeout(5000);
if (connection.getResponseCode()==200){
return inputStream2String(connection.getInputStream());
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Log.d(TAG, "请求结果"+s);
Gson gson=new Gson();
NewsBean newsBean=gson.fromJson(s,NewsBean.class);
Log.d(TAG, "请求到"+newsBean.getNewslist().size()+"条数据");
ListAdapter listAdapter=new ListAdapter(MainActivity.this,newsBean.getNewslist());
listView.setAdapter(listAdapter);
}
}
private String inputStream2String(InputStream inputStream) throws IOException {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
int len = -1;
byte[] b = new byte[1024];
while ((len = inputStream.read(b)) != -1) {
outputStream.write(b, 0, len);
}
return new String(outputStream.toByteArray());
}
}
//