public
class
Adapter
extends
ArrayAdapter<Forecast> {
private
View v;
private
ViewHolder holder;
public
Adapter(Context context,
int
resource,
List<Forecast> objects) {
super
(context, resource, objects);
}
@Override
public
View getView(
int
position, View convertView, ViewGroup parent) {
if
(convertView ==
null
) {
LayoutInflater inflater = LayoutInflater.from(getContext());
v = inflater.inflate(R.layout.listview,
null
);
holder =
new
ViewHolder();
holder.title = (TextView) v.findViewById(R.id.title);
holder.datetime = (TextView) v.findViewById(R.id.datetime);
holder.bible = (TextView) v.findViewById(R.id.bible);
holder.name = (TextView) v.findViewById(R.id.name);
holder.thumbnail = (ImageView) v.findViewById(R.id.thumbnail);
v.setTag(holder);
}
else
{
v = convertView;
holder = (ViewHolder) v.getTag();
}
final
Forecast f = getItem(position);
holder.title.setText(f.title);
holder.datetime.setText(f.datetime);
holder.bible.setText(f.bible);
holder.name.setText(f.name);
new
ImageAsync(holder.thumbnail).execute(f.thumbnail);
return
v;
}
}
class
ImageAsync
extends
AsyncTask<String, String, ImageView> {
Bitmap bm;
ImageView mImg;
ImageAsync(ImageView img) {
mImg = img;
}
@Override
protected
ImageView doInBackground(String... params) {
try
{
URL url =
new
URL(params[
0
]);
Log.d(
"TA"
, params[
0
]);
URLConnection connection = url.openConnection();
connection.connect();
InputStream is = connection.getInputStream();
BufferedInputStream bis =
new
BufferedInputStream(is);
bm = BitmapFactory.decodeStream(bis);
bis.close();
is.close();
}
catch
(IOException e) {
}
return
null
;
}
@Override
protected
void
onPostExecute(ImageView imgView) {
mImg.setImageBitmap(bm);
}
}
class
ViewHolder {
TextView title;
TextView datetime;
TextView bible;
TextView name;
ImageView thumbnail;
}