Filter in Android nimmt die falsche Position ein

Ich versuche, die Liste durch EditText unter Verwendung des Filters im Adapter zu sortieren.

Filter wird gut verarbeitet, aber die Position des Listview-Klicks ist immer konstant.

Das heißt, ListView wird gefiltert, nimmt jedoch nach Auswahl des Elements dieselbe Position in der Listenansicht ein.

FirstScreen sieht so aus und wenn Albanien ausgewählt ist, wird Albanien richtig angezeigt, aber wenn nach dem Sortieren Behrain ausgewählt wird und dasselbe Albanien angezeigt wird, da in der Listenansicht poition 0 ist, wird dieses Problem behoben

Einige der Codes im Adapter sind:

@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;
}

Mein Problem ist, dass bei Listeneinträgen nach einiger Suche von der ersten Position aus geklickt wird

ListView-Klickcode ist

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();

        }
    });

Antworten auf die Frage(1)

Ihre Antwort auf die Frage