Je suis à la recherche de ce problème pendant des heures.
J'ai autocompletetextview qui montre toutes les entrées dans la liste déroulante.
Je conserve les valeurs dans Sharedpreference.Set <String> Trier et supprimer une valeur spécifique
AutoCompleteTextView texttutar;
ArrayAdapter<String> adapter;
SharedPreferences.Editor editor;
SharedPreferences pref;
Set<String> hs;
ONCREATE ----
pref = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
editor = pref.edit();
hs = pref.getStringSet("set", new HashSet<String>());
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line);
texttutar.setAdapter(adapter);
if(!texttutar.getText().toString().isEmpty()){
hs.add(texttutar.getText().toString());
editor.clear();
editor.putStringSet("set",hs);
editor.commit();
}
// SortedSet<String> sortedSet = new TreeSet<String>(hs);
// Toast.makeText(getApplicationContext(), "" + sortedSet.first(), Toast.LENGTH_LONG).show();
// if(hs.size()>=5)
// hs.remove(hs.iterator().next()); Removing last value of hs
adapter.clear();
adapter.addAll(hs);
texttutar.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
adapter.getFilter().filter(null);
texttutar.setThreshold(1);
}
return false;
}
});
texttutar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
texttutar.showDropDown();
}
});
Maintenant, ce code fonctionne parfaitement. Mais j'ai besoin de deux choses à faire.
Premier problème: Quand j'ajouter des valeurs telles que
100-101 - 102-103 -104 à 105
sa me montrant les valeurs comme ça:
102 - 100 - 105-103 - 101 - 104
Je ne sais pas pourquoi. Il doit trier par le temps.
Deuxième problème: Comme vous pouvez le voir, je peux supprimer la dernière valeur, mais je n'ai pas trouvé de solution pour le premier élément.
J'ai essayé quelque chose comme Treeset mais ce n'est pas important. Important est que je devrais supprimer la valeur de Set (Sharedpreference).
Après autotextview affiche la valeur 5, il doit supprimer le premier élément.
Comme ça: J'ajoute ces valeurs. Lorsque j'ajoute 900, le code doit supprimer la première valeur (110), puis la première valeur sera 200. Son travail comme ça.