Android
Android

Reputation: 9023

android listview searching getting null pointer error

Hello all i want to add search funcationality to listview for that i have doen following

    @Override
    public Filter getFilter() {
        if (valueFilter == null) {
            valueFilter = new ValueFilter();
        }
        return valueFilter;
    }

    private class ValueFilter extends Filter {

        @Override
        protected FilterResults performFiltering(CharSequence constraint) {
            FilterResults results = new FilterResults();

            if (constraint != null && constraint.length() > 0) {

                for (int i = 0; i < mStringFilterList.size()-1; i++) {
                    if ((mStringFilterList.get(i).getServiceName().toString())
                            .contains(constraint.toString())) {
                        // Contacts contacts = new Contacts();


                        contacts.setServiceName(mStringFilterList.get(i)
                                .getServiceName());
                        contacts.setAmount(mStringFilterList.get(i).getAmount()
                                + "");
                        System.out
                                .println("mStringFilterList.get(i).getAmount()"
                                        + mStringFilterList.get(i).getAmount());
                        contacts.setTrnDate(mStringFilterList.get(i)
                                .getTrnDate());
                        System.out
                                .println("mStringFilterList.get(i).getTrnDate()"
                                        + mStringFilterList.get(i).getTrnDate());
                        filterList.add(contacts);
                    }
                }
                results.count = filterList.size();
                results.values = filterList;
            } else {
                results.count = mStringFilterList.size();
                results.values = mStringFilterList;
            }
            return results;
        }

        @Override
        protected void publishResults(CharSequence constraint,
                FilterResults results) {
             list=(ArrayList<Contacts>) results.values;

            notifyDataSetChanged();
        }

    }

}

But getting error on mStringFilterList.get(i).getServiceName().toString())

Upvotes: 0

Views: 46

Answers (1)

Hiren Patel
Hiren Patel

Reputation: 52800

Update getCount() method:

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

Reason: You need to return numbers of elements stored in ArrayList.

Done

Upvotes: 2

Related Questions