gpt4 book ai didi

java - 重写自定义 ArrayAdapter 删除迭代器

转载 作者:行者123 更新时间:2023-12-01 13:42:46 26 4
gpt4 key购买 nike

我有一个自定义的ArrayAdapter,并且我重写了添加和删除方法。
当我调用删除方法时,传递的对象与中的相应对象略有不同>ArrayAdapter 应该被删除,一些字段不匹配。
我不关心这些差异,仍然希望删除我认为对应的对象。
我该怎么做?

我尝试在我的对象的类中编写一个 equals() 方法,我只比较感兴趣的字段,但该函数从未叫。我还尝试通过迭代删除方法中的所有 ArrayAdapter 成员,然后在 上调用 remove(index) 来查找要删除的对象的索引。 ArrayList,这有效,但是当更新 listView 时,自定义 ArrayAdapter 的 getView() 方法被额外调用一次,而不是考虑到被移除的对象。
这可能是因为 super.remove(index) 没有被调用,因为 super.remove(object) 是预期被调用的。

感谢您的任何建议。

最佳答案

我必须重写对象的 equals 方法,但是当重写此方法时,必须按以下方式重写它:

@Override
public boolean equals (Object obj) {
CustomClass foo = (CustomClass)obj;

// now 'this' can be compared to foo, as needed
}

我最初编写了一个 equals 方法,如下所示(并且它没有被调用 - 我想我重载了它,而不是覆盖它。

public boolean equals (CustomClass obj) {
// comparing 'this' to obj does not help, since the entire equals method
// is not called at all
}

关于java - 重写自定义 ArrayAdapter 删除迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20581812/

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