В моем приложении пользователь может ввести почасовое обновление суммы чего-либо. Например, в первый час они вводят 100 и добавляют его к последнему. Они перейдут к другому виду деятельности, а затем вернутся к нему, когда придет следующий час, и войдут в 200.
Кажется, это работает нормально, хотя, возможно, после одной или двух записей список, похоже, обретает собственный разум и начинает случайную сортировку списка.
Скриншот того, чего я пытаюсь достичь:

Скриншот происходящего (обычно после 3-й записи):

Как видите, третий занял позицию второго, и это происходит случайным образом, и они переходят в разные позиции.
Вот мой код:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.processing);
sharedPreferences = getSharedPreferences("MYPREFS", MODE_PRIVATE );
textView = (TextView)findViewById(R.id.textView);
btnShippersCompleted = (Button)findViewById(R.id.button4) ;
listView = (ListView)findViewById(R.id.listview1);
clear = (Button) findViewById(R.id.buttonClear);
clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listView.setAdapter(null);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.clear();
editor.apply();
}
});
handler = new Handler() ;
ListElementsArrayList = new ArrayList<String>(Arrays.asList(ListElements));
adapter = new ArrayAdapter<String>(Processing.this,
android.R.layout.simple_list_item_1,
ListElementsArrayList
);
listView.setAdapter(adapter);
btnShippersCompleted.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
listView.setAdapter(adapter);
shippersCompleted = textView.getText().toString();
Hour = sharedPreferences.getInt("Hour", 1);
ListElementsArrayList.add(shippersCompleted + "- Hour " + Hour++);
adapter.notifyDataSetChanged();
}
});
}
@Override
protected void onPause() {
super.onPause();
//Set the values
SharedPreferences.Editor editor = sharedPreferences.edit();
Set<String> set = new HashSet<String>();
set.addAll(ListElementsArrayList);
editor.putStringSet("list", set);
editor.putInt("Hour", Hour);
editor.apply();
}
@Override
public void onResume() {
super.onResume();
Set<String> set = sharedPreferences.getStringSet("list", null);
if(set != null) {
ListElementsArrayList.addAll(set);
listView.setAdapter(adapter);
} else {
Toast.makeText(Processing.this, "No records have been saved!", Toast.LENGTH_LONG).show();
}
}
@Override
public void onStop() {
super.onStop();
}
@Override
public void onDestroy() {
super.onDestroy();
}
* *} Тысяча двадцать-один
Может ли кто-нибудь мне помочь, чтобы каждый раз, когда он прибавлялся к последней позиции, а когда я снова возвращался к этому занятию, он поддерживал эту позицию.
Спасибо