main主方法
public class MainActivity extends AppCompatActivity {
private ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.lv);
MyTask mytask=new MyTask();
mytask.execute("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page=1");
}
class MyTask extends AsyncTask<String,Void,String>{
@Override
protected String doInBackground(String... params) {
String str="";
try {
URL url=new URL(params[0]);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setReadTimeout(5000);
connection.setConnectTimeout(5000);
if(connection.getResponseCode()==200){
InputStream inputStream = connection.getInputStream();
str= StreamToString(inputStream);
}
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson=new Gson();
Result result = gson.fromJson(s, Result.class);
List<Result.NewslistBean> lists = result.getNewslist();
MyAdapter myAdapter=new MyAdapter(MainActivity.this,lists);
lv.setAdapter(myAdapter);
}
}
public String StreamToString(InputStream is){
StringBuilder builder = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String con;
try {
while((con=reader.readLine())!=null){
builder.append(con);
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
return builder.toString();
}
}
适配器
public class MyAdapter extends BaseAdapter {
Context con;
List<Result.NewslistBean> lists;
public MyAdapter(Context con, List<Result.NewslistBean> lists) {
this.con=con;
this.lists=lists;
}
@Override
public int getCount() {
return lists.size();
}
@Override
public Object getItem(int position) {
return lists.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView==null){
holder = new ViewHolder();
convertView = View.inflate(con,R.layout.item,null);
holder.img = (ImageView) convertView.findViewById(R.id.img);
holder.tv = (TextView) convertView.findViewById(R.id.tv);
holder.time = (TextView) convertView.findViewById(R.id.time);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
holder.tv.setText(lists.get(position).getTitle());
holder.time.setText(lists.get(position).getCtime());
ImageLoader.getInstance().init(ImageLoaderConfiguration.createDefault(con));
ImageLoader.getInstance().displayImage(lists.get(position).getPicUrl().toString(),holder.img);
return convertView;
}
class ViewHolder {
TextView tv;
TextView time;
ImageView img;
}
}