1

I am changing image view icon on click of image View but when it returns null pointer exception error in list view.

here is my code. Please help me out from this

 public class SelectTagAdapter extends BaseAdapter implements Filterable {
    Context context;
    ArrayList<TagDataModel> arrayList;
    LayoutInflater inflater=null;
    FilterSearchListener filterSearchListener;
    String selectedTag;
    TagDatabaseHelper tagDatabaseHelper;
    SelectTagActivity tagActivity;
    String tagType;
    static int AT_TAG_TYPE=1;
    static int HASH_TAG_TYPE=0;
    Holder holder=null;
    View view;

    public SelectTagAdapter(Context con,ArrayList arr,String tagType){
        this.context=con;
        this.arrayList=arr;
        this.tagType = tagType;
        inflater = ( LayoutInflater )context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        tagActivity=(SelectTagActivity)context;
        tagDatabaseHelper = new TagDatabaseHelper(context);
    }

    public void setFilterListener(FilterSearchListener filterSearchListener) {
        this.filterSearchListener=filterSearchListener;
    }

    @Override
    public int getCount() {
        return arrayList.size();
    }

    @Override
    public Object getItem(int position) {
        return arrayList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return arrayList.get(position).hashCode();
    }


    @Override
    public int getItemViewType(int position) {
        return arrayList.get(position).getViewType() ;
    }

    @Override
    public int getViewTypeCount() {
        return 2;
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {

        final TagDataModel tag=new TagDataModel();
        View rowView=null;
        int viewType = getItemViewType(position);
        if(rowView==null) {
            holder =new Holder();

            switch (viewType)

            {

                case 0://For # type Tags


                    rowView = inflater.inflate(R.layout.tag_item_hash_type, null);
                    view = rowView;

                    holder.checked = (ImageView)rowView.findViewById(R.id.checked);
                    holder.relativeLayout = (RelativeLayout)rowView.findViewById(R.id.tag_realtivelayout);

                    holder.relativeLayout.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {

                            getTagStatus("", position, holder, HASH_TAG_TYPE,view);

                        }
                    });


                 break;



                case 1: // for @ type tags

                    rowView = inflater.inflate(R.layout.tag_item, null);
                    view = rowView;


                    holder.upIv = (ImageView) rowView.findViewById(R.id.up);
                    holder.downIv = (ImageView) rowView.findViewById(R.id.down);
                    holder.neutralIv = (ImageView) rowView.findViewById(R.id.neutral);
                    holder.exclamationIv = (ImageView) rowView.findViewById(R.id.exclamation);


                    holder.upIv.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {

                            getTagStatus("up", position, holder,AT_TAG_TYPE,view);


                        }
                    });

                    holder.downIv.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {


                            getTagStatus("down", position, holder,AT_TAG_TYPE,view);


                        }
                    });

                    holder.neutralIv.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {

                            getTagStatus("neutral", position, holder,AT_TAG_TYPE,view);

                        }
                    });

                    holder.exclamationIv.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {

                            getTagStatus("esclamation", position, holder,AT_TAG_TYPE,view);

                        }
                    });




                    break;




            }

            holder.title = (TextView) rowView.findViewById(R.id.row_title);
            holder.subtitle = (TextView) rowView.findViewById(R.id.row_subtitle);

                rowView.setTag(holder);
        }else {
            holder = (Holder) rowView.getTag();

        }



            holder.title.setText(arrayList.get(position).getTitle());
            holder.subtitle.setText(arrayList.get(position).getSubtitle());

                if(viewType==1) {



                    if (arrayList.get(position).getTagstatus() != null) {
                        if (arrayList.get(position).getTagstatus().equals("up")) {
                            holder.upIv.setImageResource(R.drawable.up);
                        }

                        if (arrayList.get(position).getTagstatus().equals("down")) {
                            holder.downIv.setImageResource(R.drawable.down);
                        }

                        if (arrayList.get(position).getTagstatus().equals("neutral")) {
                            holder.neutralIv.setImageResource(R.drawable.neutral);
                        }

                        if (arrayList.get(position).getTagstatus().equals("esclamation")) {
                            holder.exclamationIv.setImageResource(R.drawable.exclamation);
                        }

                    }
                }else
                {
                        if(arrayList.get(position).getTagstatus()!=null)
                        if(arrayList.get(position).getTagstatus().equals("true"))
                        {
                            holder.checked.setImageResource(R.drawable.tick_icon);

                        }



                }


        return rowView;
    }

 public  static class Holder {
        TextView title,subtitle;
        ImageView upIv,downIv,neutralIv,exclamationIv,checked;
     RelativeLayout relativeLayout;
    }

    @Override
    public Filter getFilter() {
        return new ListFilter();
    }

    public class ListFilter extends Filter {
        @Override
        protected FilterResults performFiltering(CharSequence constraint) {
            String constraintStr = constraint.toString().toLowerCase(Locale.getDefault());
            FilterResults result = new FilterResults();


            if (constraint != null && constraint.toString().length() > 0) {
                ArrayList<TagDataModel> filterItems = new ArrayList<TagDataModel>();

                synchronized (this) {
                    for (TagDataModel item : arrayList) {
                        if (item.getTitle().toLowerCase(Locale.getDefault()).startsWith(constraintStr)) {
                            filterItems.add(item);
                        }
                    }
                    result.count = filterItems.size();
                    result.values = filterItems;
                }
            } else {
                synchronized (this) {
                    result.count = arrayList.size();
                    result.values = arrayList;
                }
            }

            return result;
        }

        @SuppressWarnings("unchecked")
        @Override
        protected void publishResults(CharSequence constraint, FilterResults results) {
            filterSearchListener.UpdateFilteredResult(constraint, results.values);
        }
    }

    public interface FilterSearchListener{
        public void UpdateFilteredResult(CharSequence constraint, Object results);
    }





    public void getTagStatus(String status ,int position,Holder holder,int tagViewType,View view)
    {

        switch (tagViewType) {

            case 0:
                    if(arrayList.get(position).getTagstatus()=="true") {
                        if (tagDatabaseHelper.deleteTag(arrayList.get(position)) > 0) {
                            arrayList.remove(arrayList.get(position));
                            notifyDataSetChanged();
                        }
                    }else
                        {
                            holder.checked.setImageResource(R.drawable.tick_icon);
                            arrayList.get(position).setTagstatus("true");
                            tagDatabaseHelper.addUpdateTag(arrayList.get(position));


                        }
                        if (tagType.contains("All_Tags"))
                            tagActivity.setVisibilitySelectedTagListView();






                break;








            case 1:
            switch (status) {

                case "up":


                    selectedTag = "up";
                    if (arrayList.get(position).getTagstatus() != null) {
                        if (arrayList.get(position).getTagstatus().equals(selectedTag)) {
                            if (tagDatabaseHelper.deleteTag(arrayList.get(position)) > 0) {
                                arrayList.remove(arrayList.get(position));
                                notifyDataSetChanged();

                            }
                        } else {

                            holder.upIv.setImageResource(R.drawable.up);
                            holder.downIv.setImageResource(R.drawable.down_normal);
                            holder.neutralIv.setImageResource(R.drawable.neutral_normal);
                            holder.exclamationIv.setImageResource(R.drawable.exclamation_normal);

                    /*tag.setId(SelectTagActivity.selectedList.get(position).getId());
                    tag.setTitle(SelectTagActivity.selectedList.get(position).getTitle());
                    tag.setSubtitle(SelectTagActivity.selectedList.get(position).getSubtitle());*/
                            arrayList.get(position).setTagstatus(selectedTag);


                            tagDatabaseHelper.addUpdateTag(arrayList.get(position));
                        }


                    } else {


                        holder.upIv.setImageResource(R.drawable.up);
                        holder.downIv.setImageResource(R.drawable.down_normal);
                        holder.neutralIv.setImageResource(R.drawable.neutral_normal);
                        holder.exclamationIv.setImageResource(R.drawable.exclamation_normal);

                    /*tag.setId(SelectTagActivity.selectedList.get(position).getId());
                    tag.setTitle(SelectTagActivity.selectedList.get(position).getTitle());
                    tag.setSubtitle(SelectTagActivity.selectedList.get(position).getSubtitle());*/
                        arrayList.get(position).setTagstatus(selectedTag);
                        tagDatabaseHelper.addUpdateTag(arrayList.get(position));
                    }

                    if (tagType.contains("All_Tags"))
                        tagActivity.setVisibilitySelectedTagListView();


                    break;


                case "down":


                    selectedTag = "down";

                    if (arrayList.get(position).getTagstatus() != null) {

                        if (arrayList.get(position).getTagstatus().equals(selectedTag)) {
                            if (tagDatabaseHelper.deleteTag(arrayList.get(position)) > 0) {
                                arrayList.remove(arrayList.get(position));
                                notifyDataSetChanged();

                            }
                        } else {
                            holder.upIv.setImageResource(R.drawable.up_normal);
                            holder.downIv.setImageResource(R.drawable.down);
                            holder.neutralIv.setImageResource(R.drawable.neutral_normal);
                            holder.exclamationIv.setImageResource(R.drawable.exclamation_normal);

                    /*tag.setId(SelectTagActivity.selectedList.get(position).getId());
                    tag.setTitle(SelectTagActivity.selectedList.get(position).getTitle());
                    tag.setSubtitle(SelectTagActivity.selectedList.get(position).getSubtitle());*/
                            arrayList.get(position).setTagstatus(selectedTag);
                            tagDatabaseHelper.addUpdateTag(arrayList.get(position));
                        }


                    } else {
                        holder.upIv.setImageResource(R.drawable.up_normal);
                        holder.downIv.setImageResource(R.drawable.down);
                        holder.neutralIv.setImageResource(R.drawable.neutral_normal);
                        holder.exclamationIv.setImageResource(R.drawable.exclamation_normal);

                    /*tag.setId(SelectTagActivity.selectedList.get(position).getId());
                    tag.setTitle(SelectTagActivity.selectedList.get(position).getTitle());
                    tag.setSubtitle(SelectTagActivity.selectedList.get(position).getSubtitle());*/
                        arrayList.get(position).setTagstatus(selectedTag);
                        tagDatabaseHelper.addUpdateTag(arrayList.get(position));
                    }
                    if (tagType.contains("All_Tags"))
                        tagActivity.setVisibilitySelectedTagListView();


                    break;


                case "neutral":


                    selectedTag = "neutral";


                    if (arrayList.get(position).getTagstatus() != null) {

                        if (arrayList.get(position).getTagstatus().equals(selectedTag)) {
                            if (tagDatabaseHelper.deleteTag(arrayList.get(position)) > 0) {
                                arrayList.remove(arrayList.get(position));
                                notifyDataSetChanged();

                            }
                        } else {
                            **holder.upIv.setImageResource(R.drawable.up_normal);
                            holder.downIv.setImageResource(R.drawable.down_normal);
                            holder.neutralIv.setImageResource(R.drawable.neutral);
                            holder.exclamationIv.setImageResource(R.drawable.exclamation_normal);**

                    /*tag.setId(SelectTagActivity.selectedList.get(position).getId());
                    tag.setTitle(SelectTagActivity.selectedList.get(position).getTitle());
                    tag.setSubtitle(SelectTagActivity.selectedList.get(position).getSubtitle());*/
                            arrayList.get(position).setTagstatus(selectedTag);
                            tagDatabaseHelper.addUpdateTag(arrayList.get(position));
                        }


                    } else {


                        ****holder.upIv.setImageResource(R.drawable.up_normal);
                        holder.downIv.setImageResource(R.drawable.down_normal);
                        holder.neutralIv.setImageResource(R.drawable.neutral);
                        holder.exclamationIv.setImageResource(R.drawable.exclamation_normal);

                    /*tag.setId(SelectTagActivity.selectedList.get(position).getId());
                    tag.setTitle(SelectTagActivity.selectedList.get(position).getTitle());
                    tag.setSubtitle(SelectTagActivity.selectedList.get(position).getSubtitle());*/
                        arrayList.get(position).setTagstatus(selectedTag);
                        tagDatabaseHelper.addUpdateTag(arrayList.get(position));


                    }
                    if (tagType.contains("All_Tags"))
                        tagActivity.setVisibilitySelectedTagListView();


                    break;


                case "esclamation":


                    selectedTag = "esclamation";


                    if (arrayList.get(position).getTagstatus() != null) {


                        if (arrayList.get(position).getTagstatus().equals(selectedTag)) {
                            if (tagDatabaseHelper.deleteTag(arrayList.get(position)) > 0) {
                                arrayList.remove(arrayList.get(position));
                                notifyDataSetChanged();

                            }
                        } else {
                            holder.upIv.setImageResource(R.drawable.up_normal);
                            holder.downIv.setImageResource(R.drawable.down_normal);
                            holder.neutralIv.setImageResource(R.drawable.neutral_normal);
                            holder.exclamationIv.setImageResource(R.drawable.exclamation);


                            arrayList.get(position).setTagstatus(selectedTag);
                            tagDatabaseHelper.addUpdateTag(arrayList.get(position));
                        }


                    } else {

                        holder.upIv.setImageResource(R.drawable.up_normal);
                        holder.downIv.setImageResource(R.drawable.down_normal);
                        holder.neutralIv.setImageResource(R.drawable.neutral_normal);
                        holder.exclamationIv.setImageResource(R.drawable.exclamation);

                    /*tag.setId(SelectTagActivity.selectedList.get(position).getId());
                    tag.setTitle(SelectTagActivity.selectedList.get(position).getTitle());
                    tag.setSubtitle(SelectTagActivity.selectedList.get(position).getSubtitle());*/
                        arrayList.get(position).setTagstatus(selectedTag);
                        tagDatabaseHelper.addUpdateTag(arrayList.get(position));

                    }

                    if (tagType.contains("All_Tags"))
                        tagActivity.setVisibilitySelectedTagListView();


                    break;


            }

                break;


        }






    }

}

Here's my logcat

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference
            at com.analec.clientmanager.adapter.SelectTagAdapter.getTagStatus(SelectTagAdapter.java:369)
            at com.abc.manager.adapter.SelectTagAdapter$3.onClick(SelectTagAdapter.java:139)
            at android.view.View.performClick(View.java:5198)
            at android.view.View$PerformClick.run(View.java:21147)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:148)
            at android.app.ActivityThread.main(ActivityThread.java:5417)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

Code which is in bold showing null pointer exception.

Shivam Nagpal
  • 763
  • 2
  • 9
  • 21

0 Answers0