Я в замешательстве, так как мне нужно использовать два OnClickListener для двух разных нужд.У меня есть Recyclerview, который, как только любой его элемент, после нажатия, нужно изменить, и я успешно реализовал это, используя OnBindViewHolder.itemView.setOnClickListener
Теперь я хочу, чтобы тот же самый щелчок обновил мой BottomAppBar и для этого,Я добавил интерфейс к своему классу ItemHolder.Проблема в том, что теперь, когда я нажимаю, из-за интерфейса (я полагаю) ничего не происходит.
Я знаю, что может быть немного сложно понять мою ситуацию, поэтому я добавляю следующий код, чтобы помочь с этим:
public class MainActivity extends AppCompatActivity implements MultiViewTypeAdapter.IClickListener {
имеет эту функцию:
@Override
public void onItemClick(View view, int position) {
int type = adapter.getItemViewType(position);
if (type == 0) {
bar.setFabAlignmentMode(BottomAppBar.FAB_ALIGNMENT_MODE_END);
bar.replaceMenu(R.menu.bab_menu_chosen_project);
fab.setImageDrawable(getDrawable(R.drawable.ic_message_white_24dp));
}
else{
bar.setFabAlignmentMode(BottomAppBar.FAB_ALIGNMENT_MODE_CENTER);
bar.replaceMenu(R.menu.bab_menu_primary);
fab.setImageDrawable(getDrawable(R.drawable.ic_reply_black_24dp));
}
}
интерфейс на адаптере выглядит следующим образом:
public interface IClickListener {
void onItemClick(View view, int position);
}
что я сейчас делаю на public static class SelectedProjectItemHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
это:
@Override
public void onClick(View v) {
listener.onItemClick(v, getAdapterPosition());
}
однако, что я хочу запустить, это то, что я делаю на
public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int listPosition) {
:
((SelectedProjectItemHolder) holder).itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dataSet.remove(listPosition);
dataSet.add(listPosition, unselectedCards.get(listPosition));
notifyItemChanged(listPosition);
}
});
Я хочу две вещипроизойдет одним щелчком мыши - элемент в Recyclerview изменится с использованием последнего фрагмента кода, который я описал, а меню в моей MainActivity изменится с использованием первого фрагмента кода, который я описал.
СПАСИБО ПОМОЩЬ!