У меня есть счетчик, заполненный списком. Когда я выбираю опцию, элемент добавляется к адаптеру повторного просмотра, и элемент удаляется из списка, который показывает счетчик, но когда элемент удаляется, а другой устанавливается на его место, система принимает это как мой выбор и добавление этого нового элемента в адаптер и удаление его из списка счетчиков. Кроме того, на моих элементах адаптера у меня есть кнопка удаления, и при нажатии на нее элемент удаляется из адаптера и добавляется в список отображения счетчика, но он снова воспринимает это как новый выбор, снова добавленный в адаптер, и удаляет его из список счетчиков. Поэтому я пытаюсь остановить это.
Это адаптер спиннера
public void buildAdapterProduct(){
arrayProductId = new int[productList.size()];
arrayProductName = new String[productList.size()];
for (int i = 0; i < productList.size(); i++) {
arrayProductName[i] = productList.get(i).nameProduct;
arrayProductId[i] = productList.get(i).idProduct;
}
adapter = new CustomArrayAdapter<CharSequence>(this, arrayProductName);
spnProductToReturnNew.setAdapter(adapter);
spnProductToReturnNew.setSelection(0, false);
}
Это адаптер повторного просмотра, где я также называю элемент удаления
public void buildAdapterProductChange(){
editModelArrayList = populateList();
try {
productToExchangeAdapter = new ProductDevolutionAdapter(productListToExchange, context,editModelArrayList);
rcvProductDevolutionNew.setLayoutManager(linearLayoutManager);
rcvProductDevolutionNew.setAdapter(productToExchangeAdapter);
productToExchangeAdapter.setOnItemClickListener(new ProductDevolutionAdapter.OnItemClickListener() {
@Override
public void onDeleteClick(int position) {
removeItem(position);
}
});
}catch (Exception e){
Log.e(TAG, "Here 3");
}
}
Это элемент удаления
public void removeItem(int position){
productList.add(productListToExchange.get(position));
productListToExchange.remove(position);
productToExchangeAdapter.notifyItemRemoved(position);
buildAdapterProduct();
}
Это выбор вращателя
spnProductToReturnNew.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
if (userIsInteracting) {
int productIdSelected= arrayProductId[position];
try{
int pos = productListToExchange.size();
insertItem(pos, productIdSelected);
}catch (Exception e){
insertItem(0, productIdSelected);
}
productList.remove(position);
buildAdapterProduct();
}
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
И, наконец, вот как я добавляю элемент в адаптер
public void insertItem(int position, int productIdSelected) {
Product productSelected = new Product().findProductById(productIdSelected);
productListToExchange.add(position, productSelected);
try{
productToExchangeAdapter.notifyItemInserted(position);
}catch (Exception e){
Log.e(TAG, "Here 2");
}
buildAdapterProductChange();
}
Любая помощь или предложение были бы хорошими, спасибо.