Я занимаюсь разработкой в Android и пытаюсь записать ArrayList
в SharedPreferencesString
Я использую следующую функцию для установки и получения данных:
fun setSharedPreferencesMutableList(context: Context, setName: String, value: ArrayList<String>) {
val setting = context.getSharedPreferences(TABLE, Context.MODE_PRIVATE)
setting.edit().putStringSet(setName, value.toSet()).apply()
}
fun getSharedPreferencesMutableList(context: Context, getName: String): ArrayList<String> {
val setting = context.getSharedPreferences(TABLE, Context.MODE_PRIVATE)
var array = setting.getStringSet(getName, setOf<String>()).toTypedArray()
return ArrayList(Arrays.asList(*array))
}
Сначала я сохраняю ArrayList и хочу снова сохранить после сортировки Arraylist
. Но я всегда получаю предварительную сортировку данных.
Код, подобный следующему:
var test = ArrayList<String>()
test.add("111")
test.add("222")
test.add("333")
test.add("444")
test.add("555")
//The data should be: [111, 222, 333, 444, 555]
//Save Data
SharedPreferenceHelper.setSharedPreferencesMutableList(context,SharedPreferenceHelper.TEST,test)
//Change "111" with "444"
var i = test.indexOf("444")
var data = test[0]
test[0] = "444"
test[i] = data
//The data should be: [444, 222, 333, 111, 555]
//Save Data again
SharedPreferenceHelper.setSharedPreferencesMutableList(context,SharedPreferenceHelper.TEST,test)
Log.d(TAG, "getList: ${SharedPreferenceHelper.getSharedPreferencesMutableList(context, SharedPreferenceHelper.TEST)}")
Но я всегда получаю несортированные данные ([111, 222, 333, 444, 555]), когда получаю SharedPreference.
Я что-то упустил?
Заранее спасибо.