Класс A создает 2 экземпляра класса B. Как получить доступ к элементу из класса B(1) из класса B?

У меня есть разделенный вид переработчика с 2 разделами. Они содержат элементы списка покупок в виде переработчика, каждый элемент имеет флажок. Я использую эту библиотеку для разделов: https://github.com/luizgrp/SectionedRecyclerViewAdapter

Я пытаюсь установить onCheckedChangeListener для флажков, поэтому, если элемент в разделе 1 становится отмеченным, он переходит в раздел 2 и наоборот, когда отмечен -> не отмечен. Я начинаю с того, что просто пытаюсь удалить элемент из раздела 1 при проверке.

Класс ShoppingList (класс A) создает 2 экземпляра HeaderRecyclerViewSection (класс B).

Список покупок класса:

public class ShoppingList extends AppCompatActivity {
HeaderRecyclerViewSection firstSection = new HeaderRecyclerViewSection("Unchecked", getDataSource());
HeaderRecyclerViewSection secondSection = new HeaderRecyclerViewSection("Checked", getDataSource());

protected void onCreate(Bundle savedInstanceState) {

// shopping list with sections
    sectionHeader = (RecyclerView) findViewById(R.id.shopping_listView);
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(ShoppingList.this);
    sectionHeader.setLayoutManager(linearLayoutManager);
    sectionHeader.setHasFixedSize(true);

    sectionAdapter = new SectionedRecyclerViewAdapter();
    sectionAdapter.addSection(firstSection);
    sectionAdapter.addSection(secondSection);
    sectionHeader.setAdapter(sectionAdapter);
}

Класс раздела:

Мне нужно что-то в onCheckedChangeListener, чтобы получить элемент, который был нажат и удалить его из firstSection, а затем уведомить адаптер в списке покупок.

public class HeaderRecyclerViewSection extends StatelessSection{
private static final String TAG = HeaderRecyclerViewSection.class.getSimpleName();
private String title;
public List<ShoppingItem> list;
public HeaderRecyclerViewSection(String title, List<ShoppingItem> list) {
    super(SectionParameters.builder()
            .itemResourceId(R.layout.shopping_item)
            .headerResourceId(R.layout.section_header)
            .build());
    this.title = title;
    this.list = list;
}
@Override
public int getContentItemsTotal() {
    return list.size();
}

public boolean addItem(ShoppingItem shoppingItem) {
    return list.add(shoppingItem);
}

public boolean removeItem(ShoppingItem shoppingItem) {
    return list.remove(shoppingItem);
}

@Override
public RecyclerView.ViewHolder getItemViewHolder(View view) {
    return new ItemViewHolder(view);
}
@Override
public void onBindItemViewHolder(RecyclerView.ViewHolder holder, int position) {
    final ItemViewHolder iHolder = (ItemViewHolder)holder;
    final ShoppingItem currentItem = list.get(position);
    iHolder.itemContent.setText(currentItem.getItemName());

    iHolder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        removeItem(currentItem); 

        }
    });
}

ItemViewHolder:

public class ItemViewHolder extends RecyclerView.ViewHolder{
public TextView itemContent;
public CheckBox checkBox;
public Button deleteButton;
public ItemViewHolder(View itemView) {
    super(itemView);
    itemContent = (TextView)itemView.findViewById(R.id.textView1);
    checkBox = (CheckBox)itemView.findViewById(R.id.checkBox);
    deleteButton = (Button)itemView.findViewById(R.id.deleteItem);
}

}

0 ответов

Другие вопросы по тегам