Filtro en Android está tomando la posición incorrecta

Estoy tratando de ordenar la lista por EditText usando el filtro en el adaptador.

El filtro se está procesando bien, pero la posición del clic de vista de lista siempre es constante.

es decir, ListView está obteniendo un filtro, pero después de la selección del elemento toma la misma posición en la vista de lista.

FirstScreen tiene este aspecto y, cuando se selecciona la albania, la albania se muestra correctamente, pero cuando, después de la clasificación, se selecciona, se muestra la misma albania, ya que la posición es 0 en la vista de lista, cómo corregir este problema

Algunos de los códigos en el adaptador son:

@Override
public Filter getFilter() {

    Filter filter = new Filter() {

        @SuppressWarnings("unchecked")
        @Override
        protected void publishResults(CharSequence constraint,
                FilterResults results) {

            country_inf = (ArrayList<CustomCountryCodesPojo>) results.values;
            notifyDataSetChanged();
        }

        @Override
        protected FilterResults performFiltering(CharSequence constraint) {

            FilterResults results = new FilterResults();
            ArrayList<CustomCountryCodesPojo> FilteredArrayNames = new ArrayList<CustomCountryCodesPojo>();

            if (mOriginalNames == null) {
                mOriginalNames = new ArrayList<CustomCountryCodesPojo>(
                        country_inf);
            }
            if (constraint == null || constraint.length() == 0) {
                results.count = mOriginalNames.size();
                results.values = mOriginalNames;
            } else {
                constraint = constraint.toString().toLowerCase();
                for (int i = 0; i < mOriginalNames.size(); i++) {
                    CustomCountryCodesPojo dataNames = mOriginalNames
                            .get(i);
                    if (dataNames.countryName.toString().toLowerCase()
                            .contains(constraint.toString())) {
                        FilteredArrayNames.add(dataNames);
                    }
                }

                results.count = FilteredArrayNames.size();
                // System.out.println(results.count);

                results.values = FilteredArrayNames;
                // Log.e("VALUES", results.values.toString());
            }

            return results;
        }
    };

    return filter;
}

Mi problema es que, en el elemento de la lista, haga clic después de una búsqueda desde la primera posición.

El código de clic de ListView es

lv_list.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            Intent i = new Intent();
            i.putExtra("flagId", flagId);
            i.putExtra("name", allRecords.get(arg2).countryName);
            setResult(RESULT_OK, (i).setAction("ok"));
            finish();

        }
    });

Respuestas a la pregunta(1)

Su respuesta a la pregunta