My list consist of one static and all other dynamic item.Each item consist of image and two textviews.The static item is added as last item of list.I am facing following issues.
1.I have set the default images for all dynamic list items same and default image of static list item different.But the image displayed for static list item is same as that of dynamic list items. Inside adapter i have used following code-
if (i == getCount()-1)
{
albumPhotosCount.setVisibility(View.INVISIBLE);
albumName.setText("Create Album");
LoadImage.loadImage("xyz", albumImage, R.drawable.create_album);
}
else{
LoadImage.loadImage(uri.toString(), albumImage, R.drawable.emptyalbum);
..}
However the albumname
shows correct text for last item and albumPhotosCount
is invisible as expected.But imageview of last static item is showing image "R.drawable.emptyalbum"
while it should show image "R.drawable.create_album"
and the image "R.drawable.create_album"
sometimes appear in third item which is dynamic while my lit consists of 15 items and it should appear in 15th item(last item).
2.The value which is coming from server that textview is dislaying is of next item for dynamic list items except the first item which is displaying correct value.i.e.textview of item 2 displays value that should be displayed by item 3 and item 3 displays value that should be displayed by item 4 and so on.
Also in first list item image fetched from server is displayed while it is not displayed for rest of the list items.
This is how I am adding static item
Invites createalbum;
createalbum=new Invites();
ArrayList<Invites> albumObjects;
private InvitesListingAdapter invitesListingAdapter;
albumObjects = (ArrayList<Invites>) response;
albumObjects.add(createalbum);
invitesListingAdapter = new InvitesListingAdapter(getActivity(), albumObjects);
mAlbumListingView.setAdapter(invitesListingAdapter);
Adapter class
public class InvitesListingAdapter extends BaseAdapter {
private List < Invites > mAlbumList;
private Context mContext;
public InvitesListingAdapter(Context context, List < Invites > albums) {
mContext = context;
mAlbumList = albums;
}
@Override
public int getCount() {
Log.e("count", "c" + mAlbumList.size());
return mAlbumList.size();
}
@Override
public Object getItem(int i) {
return mAlbumList.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(final int i, View convertView, ViewGroup viewGroup) {
if (convertView == null) {
LayoutInflater layoutInflater = LayoutInflater.from(mContext);
convertView = layoutInflater.inflate(R.layout.item_album_listing, null);
}
NetworkImageView albumImage = (NetworkImageView) convertView.findViewById(R.id.album_thumbnail);
TextView albumName = (TextView) convertView.findViewById(R.id.album_name);
TextView albumPhotosCount = (TextView) convertView.findViewById(R.id.album_photos_number);
if (i == getCount() - 1) {
albumPhotosCount.setVisibility(View.INVISIBLE);
albumName.setText("Create Album");
LoadImage.loadImage("xyz", albumImage, R.drawable.create_album);
} else {
albumPhotosCount.setVisibility(View.VISIBLE);
Uri uri;
if (mAlbumList.get(i).getnPics() != 0) {
uri = Uri.parse(mAlbumList.get(i).getCoverPhotoUrl());
if (uri.getHost() == null) {
byte[] decodedImage = Base64.decode(uri.toString(), Base64.URL_SAFE);
albumImage.setImageBitmap(BitmapFactory.decodeByteArray(decodedImage,
0, decodedImage.length));
} else {
Toast.makeText(mContext, uri.toString(), Toast.LENGTH_LONG).show();
LoadImage.loadImage(uri.toString(), albumImage, R.drawable.emptyalbum);
}
} else {
LoadImage.loadImage("xyz", albumImage, R.drawable.emptyalbum);
}
albumName.setVisibility(View.VISIBLE);
albumName.setText(mAlbumList.get(i).getName());
albumPhotosCount.setText(mAlbumList.get(i).getnPics() + " Photos");
}
return convertView;
}
}