この問題を何時間も探しています。
私はdropdownlistのすべての入力を示すautocompletetextviewを持っています。
私はSharedpreferenceに値を保持します。セット<String>特定の値を並べ替えて削除する
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();
}
});
ここで、このコードは完全に機能します。 しかし、もう2つのことが必要です。
最初の問題:100 - - 105 - 103
102:私は
100のような値を追加すると101 - - 102 - - 103 -104 105
それは私にそのような値を示します - 101 - 104
なぜか分かりません。それは時間でソートする必要があります。
第2の問題:最後の値は削除できますが、最初のアイテムの解決策は見つけられませんでした。
私はTreesetのようなものを試しましたが、それは重要ではありません。重要なのは、Set(Sharedpreference)の値を削除することです。
自動テキストビューに5の値が表示された後は、最初の項目を削除する必要があります。
このように:この値を追加します。 110-200-300-400-690、次に900
900を追加すると、最初の値(110)が削除され、最初の値は200になります。そのような仕事。