Я разрабатываю приложение, которое использует ArrayList
для заполнения ListView
. Я использую пользовательский класс для своего ListView
. Я хочу добавить/удалить из ArrayList
для моего Listview
. Моя цель - это элементы элемента списка элементов управления, если он существует в ArrayList
удалить или если его нет в ArrayList
, добавьте элемент списка.Добавить/удалить значение из ArrayList для значений uniqe
Чтобы объяснить свою ситуацию, я вставил свой код ниже;
Это мой пользовательский класс;
public class NDListItem {
String textdata;
public NDListItem(String textdata) {
this.textdata = textdata;
}
}
Это мой метод использования моего класса. Параметр Name исходит из другого действия. Это происходит должным образом. Я использую цикл для этой проблемы и не могу позволить себе получить то, что хочу. Я прочитал документацию и нашел другое решение. Использование метода equals и hash-code для моего класса может выполнять мою работу, но я не знаю, как это сделать.
EDIT: Добавить пояснения и myItems
пояснения во втором кодовом блоке.
public void addLayersection(String name) {
//MyList already defined on the scope..
//MyList looks like this
// ArrayList<NDListItem> myItems = new ArrayList<>();
NDListItem listItem = new NDListItem(name);
if (myItems.size() == 0) {
myItems.add(listItem);
} else {
if(myItems.contains(listItem))
{
myItems.add(listItem);
}
else
{
myItems.remove(listItem);
}
}
myAdapter.notifyDataSetChanged();
}
EDIT2
Я обновил свой класс для равных метода. Он работает чудесно, но работает только первый элемент, который я добавил в ArrayList
. Я хочу эту работу для каждого пунктов
public class NDListItem {
String textdata;
public NDListItem(String textdata) {
this.textdata = textdata;
}
public boolean equals(Object o) {
if (o == null) return false;
//if(!(o instanceof) NDListItem) return false;
if (!(o instanceof NDListItem)) return false;
NDListItem other = (NDListItem) o;
if (!this.textdata.equals(other.textdata))
return false;
else
return true;
}
}
http://tutorials.jenkov.com/java-collections/hashcode-equals.html – iced
Я не мог позволить себе добавить это использование в свой проект. – salih
Вы не можете добавить несколько методов в свой собственный класс? – iced