0

Hey I am trying to view specific items in the grid view which have an id less than 100. This is my adapter class but for some reason its not working and displays all the items. Logged in the id's and they are all fine.

public View getView(int position, View convertView, ViewGroup parent) {
    PreviousViewHolder holder = null;
    ServerFeed previousDayRank = getItem(position);

    LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
    if (convertView == null) {
        if (previousDayRank.getId() < 100) {
            convertView = layoutInflater.inflate(R.layout.popular_discover_list_item, null);
            holder = new PreviousViewHolder(convertView);
            convertView.setTag(holder);
        } else {
            convertView = layoutInflater.inflate(R.layout.null_item, null);
            holder = new PreviousViewHolder(convertView);
            convertView.setTag(holder);
        }

    } else {

        holder = (PreviousViewHolder) convertView.getTag();
        holder.setImageUrl(getContext(), previousDayRank.getName(), previousDayRank.getId());
    }
    return convertView;

}

I have tried varieos links link1 link2 but they didn't really help

Community
  • 1
  • 1
Saransh Agarwal
  • 305
  • 5
  • 18

3 Answers3

0

Change your getView method like this

    public View getView(int position, View convertView, ViewGroup parent)                {
        PreviousViewHolder holder = null;
        ServerFeed previousDayRank = getItem(position);

        LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        if (convertView == null) {           
 convertView = layoutInflater.inflate(R.layout.popular_discover_list_item, null);
                holder = new PreviousViewHolder(convertView);
                convertView.setTag(holder);
            } else {

                holder = (PreviousViewHolder)convertView.getTag();

            }

        if(previousDayRank.getId() < 100){
        holder.setImageUrl(getContext(), previousDayRank.getName(), previousDayRank.getId());}
       return convertView;
    }
Sandeep dhiman
  • 1,863
  • 2
  • 17
  • 22
  • hey your code worked it does not show the those items but it still has those items which were meant to be removed they are just not visible – Saransh Agarwal May 22 '17 at 13:19
0

Just filter your data before passing to addapter. Just like that:

for(ServerFeed item : mServerFeeds){if(item.getId() > 100) mServerFeeds.remove(item);}
0

call this method in your code-

public int getItemPosition(long id)
{
for (int position=0; position<100; position++)
    if (mList.get(position).getId() == id)
        return position;
return 0;
}  
Yuvaan Chauhan
  • 344
  • 1
  • 3
  • 12