У меня есть ListView в Android, который содержит заказы. Когда вы нажимаете на конкретный заказ, вы можете выбрать, удалять его или нет. Если список содержит> 1 элементов, удаленный элемент больше не отображается в ListView. Однако, когда размер списка равен 1, и вы удаляете единственный оставшийся порядок, этот порядок удаляется из списка, но не из ListView. Таким образом, вы все еще можете увидеть его на экране, но если вы попытаетесь открыть его, появится сообщение об ошибке «Не удается открыть этот заказ».
Когда вы вернетесь на главный экран и снова откроете ListView, порядок будет удален правильно, и отобразится пустой список. Однако я не уверен, почему это происходит. Вот пример кода:
method {
VerkoopOrder orderToBeSaved = CurrentOrder;
UUID CurrentID = CurrentOrder.getId();
orderToBeSaved.setId(null);
String Result = OrderHelper.SaveOrder(orderToBeSaved, APIKey);
JSONObject json = new JSONObject(Result);
String res = json.getString("nummer");
if (Result != null) {
Messager.showMessage(getString(R.string.Saved), getString(R.string.OrderSavedAs) + " " + res, true, this);
DeleteCurrentOrder(APIKey, CurrentID);
UnsavedOrdersActivity.UnsavedOrderAdapter.notifyDataSetChanged();
}
}
public void DeleteCurrentOrder(String APIKey, UUID OrderId) {
try {
OrderScanPreference orderScanPreference = OrderScanPreference.GetCurrentSavedPreference(this, getString(R.string.OrderScanUserPreference));
String finalAPIKey = APIKey;
try {
for (UnsavedOrderPreference unsavedOrderPreference : orderScanPreference.unsavedOrderPreferences) {
if (unsavedOrderPreference.APIAdministrationToken.equals(finalAPIKey)) {
unsavedOrderPreference.UnsavedOrders.removeIf(r -> r.getId().equals(OrderId)); //Order gets removed from the list!
}
}
orderScanPreference.Save(this, getString(R.string.OrderScanUserPreference));
} catch (Throwable throwable) {
//TODO
}
} catch (Exception ex) {
Log.d("Exception: ", ex.toString());
//TODO
}
}
Этот код был написан коллегой, но он покинул компанию несколько недель назад, поэтому я должен закончить его проект. Дайте мне знать, если вам потребуется дополнительная информация.