I am a begginer in Android but I tried to make a custom listview filtering and I it worked somehow. The only problem I have is that the ArrayList that I kept all the values
Your problem are this lines:
this.original = items;
this.fitems = items;
Items is the list you use for your ListView and putting it in two different variables does not make two different lists out of it. You are only giving the list items two different names.
You can use:
this.fitems = new ArrayList(items);
that should generate a new List and changes on this list will only change the fitems list.