Фрагмент представления вкладки android

Привет, я нашел коды this, которые фильтруют вкладку reyclerview фрагменты, которые я пытался использовать эту идею и работает нормально, но проблема в том, что когда я получаю результаты фильтра и щелкаю такой элемент, скажем, onclick, я хочу отправить значение другому действию или поджарить значения щелкнутого элемента, это дает неправильные результаты. Я следовал некоторым решениям, таким как это и this, но я все еще теряю смысл, потому что фрагменты кода, представляющие проблему, немного отличаются, поэтому я не могу подключиться точки, основанные на моем случае, но я понял, что фильтрация по тексту изменена, но я повторно использую старый фильтр вместо создания нового, некоторые решения представили решения для привязки представления, а другие - в зависимости от проблемы, лично я не знаю, какой из них это лучший способ решить эту проблему, поэтому из моего кода ниже, где я должен начать контролировать проблему и как ее решить:

 public class TabFragment3 extends Fragment implements SearchView.OnQueryTextListener {
private IFragmentToActivity mCallback;
private RecyclerView recyclerView;
private LinearLayoutManager layoutManager;
private UsersAdapter adapter;
ArrayList<HashMap<String, String>>  arrayList;
DBController controller = new DBController(getContext());
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view =inflater.inflate(R.layout.tab_fragment_3, container, false);
    recyclerView = (RecyclerView) view.findViewById(R.id.usersList);
    setHasOptionsMenu(true);
    recyclerView.setHasFixedSize(true);
    layoutManager = new LinearLayoutManager(getContext());
    recyclerView.setLayoutManager(layoutManager);
    return view;
      }

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    setHasOptionsMenu(true);
    controller = new DBController(getContext());
    arrayList = controller.getAllUsers();
    adapter = new UsersAdapter(arrayList,getContext());
    recyclerView.setAdapter(adapter);
    adapter.notifyDataSetChanged();
}

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.menu_main, menu);
    super.onCreateOptionsMenu(menu,inflater);
    final MenuItem item = menu.findItem(R.id.action_search);
    final SearchView searchView = (SearchView) MenuItemCompat.getActionView(item);
    searchView.setOnQueryTextListener(this);
    MenuItemCompat.setOnActionExpandListener(item,new MenuItemCompat.OnActionExpandListener() {
        @Override
        public boolean onMenuItemActionCollapse(MenuItem item) {
             arrayList = controller.getAllUsers();
           // Do something when collapsed
            adapter.setFilter(arrayList);
            return true; // Return true to collapse action view
        }

        @Override
        public boolean onMenuItemActionExpand(MenuItem item) {
           // Do something when expanded
            return true; // Return true to expand action view
        }
    });
}

@Override
public boolean onQueryTextChange(String query) {
    query = query.toLowerCase();
    arrayList = controller.getAllUsers();
    ArrayList<HashMap<String, String>> newList= new ArrayList<>();
    for(HashMap<String, String> entry : arrayList){
        String name2= entry.get("number").toLowerCase();
        if(name2.contains(query)){
            newList.add(entry);
        }
    }
    adapter.setFilter(newList);
    return true;
}
@Override
public boolean onQueryTextSubmit(String newText) {

    return false;
     }
     }

///// адаптер

    public class UsersAdapter extends 
 RecyclerView.Adapter<UsersAdapter.UserViewHolder> {
ArrayList<HashMap<String, String>> mDataSet= new ArrayList<HashMap<String, 
 String>> ();
Context ctx;
public UsersAdapter(ArrayList<HashMap<String, String>> mDataSet,Context ctx) 
  {
   this.mDataSet = mDataSet;
      this.ctx=ctx;
     }
       @Override
    public UserViewHolder onCreateViewHolder(ViewGroup parent, int viewType) 
   {
     View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.user_row, parent, false);
       UserViewHolder userViewHolder = new UserViewHolder(v,mDataSet,ctx);
      return userViewHolder;
          }
       @Override
    public void onBindViewHolder(UserViewHolder holder, int position) {
    holder.name_entry.setText(mDataSet.get(position).get("userId"));
    holder.email_entry.setText(mDataSet.get(position).get("userName"));
    holder.icon_entry.setText(""+mDataSet.get(position).get("number"));
    }
      @Override
   public int getItemCount() {
   return mDataSet.size();
    }

         public static class UserViewHolder extends RecyclerView.ViewHolder  {
          CardView cardView;
         TextView name_entry, email_entry, icon_entry;
            Context ctx;
            ArrayList<HashMap<String, String>> mDataSet= new ArrayList<HashMap<String, String>> ();
             public UserViewHolder(View itemView, ArrayList<HashMap<String, 
          String>> mDataSet,Context ctx) {
           super(itemView);
        this.mDataSet=mDataSet;
         this.ctx= ctx;
        cardView = (CardView) itemView.findViewById(R.id.user_layout);
        name_entry = (TextView) itemView.findViewById(R.id.name_entry);
        email_entry = (TextView) itemView.findViewById(R.id.email_entry);
        icon_entry = (TextView) itemView.findViewById(R.id.icon_entry);
        }
               }

       @Override
        public void onAttachedToRecyclerView(RecyclerView recyclerView) {
       super.onAttachedToRecyclerView(recyclerView);
           }
 public void setFilter(ArrayList<HashMap<String, String>> newList){
mDataSet= new ArrayList<HashMap<String, String>>();
mDataSet.addAll(newList);
notifyDataSetChanged();
 }

person f2k    schedule 12.04.2017    source источник