gpt4 book ai didi

java - Android ListView 删除所有内容后仍然包含一项

转载 作者:行者123 更新时间:2023-12-02 10:37:01 25 4
gpt4 key购买 nike

我在 Android 中有一个包含订单的 ListView。当您点击特定订单时,您可以选择是否删除它。当列表包含 >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
}
}

这段代码是由一位同事编写的,但他几周前离开了公司,所以我必须完成他的项目。如果您需要更多信息,请告诉我。

最佳答案

我检查了列表是否为空。如果是,它会将 Adapter 重新分配给 ListView,以便完全清除列表。

这不是一个很好的解决方案,所以我还不会接受这个答案。只有当很快没有更好的答案时我才会接受。

关于java - Android ListView 删除所有内容后仍然包含一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53205229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com