我正在尋找這個問題幾個小時。
我有autocompletetextview這是顯示在dropdownlist中的所有輸入。
我將值保存在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();
}
});
現在,此代碼完美工作。 但我還需要做兩件事。
第一個問題:當我添加像
100值 - 101 - 102 - 103 -104 - 105
其表示我這樣的值:
102 - 100 - 105 - 103 - 101 - 104
我不知道爲什麼。它必須按時間排序。
第二個問題:正如你可以看到我可以刪除最後一個值,但我沒有找到任何解決方案的第一個項目。
我嘗試了類似Treeset的東西,但它並不重要。重要的是我應該刪除Set(Sharedpreference)的值。
autotextview顯示5個值後,必須刪除第一個項目。
就像那樣:我在添加這個值。 110-200-300-400-690然後900
當我加900代碼必須刪除第一個值(110),那麼第一個值將是200。它的工作就是這樣。