Как я могу использовать представления из моего метода в пользовательском адаптере? - PullRequest
0 голосов
/ 09 октября 2018

Я пытался изменить цвет фона textview в моем настраиваемом адаптере, и я создал метод, потому что я хочу добиться этого метода из моей деятельности.Поэтому я хочу использовать мои представления в моем методе в пользовательском адаптере, например, как мы используем holder.txt_product .... в методе onBindViewHolder ().

@Override
public void onBindViewHolder(final DeMontageListAdapter.MyViewHolder holder, 
final int position) {

    holder.txt_piston_code.setText(list.get(position).getPistonCode());
}

@Override
public int getItemCount() {
    return list.size();
}

public void changeTextViewBackground(){


}

Я хочу активировать свои представления как onBindViewHolder ()метод в моем методе changeTextViewBackground ().

1 Ответ

0 голосов
/ 09 октября 2018

Вам необходимо внедрить и настроить интерфейс слушателя, чтобы ваши зрители могли общаться с ними посредством вашей активности:

Ваш пользовательский адаптер:

     private OnItemClickListener onItemClickListener; //ADD THIS GLOBAL FIELD

     //ADD THIS SETTER
     public void setOnItemClickListener(OnItemClickListener onItemClickListener) 
     {
         this.onItemClickListener = onItemClickListener;
     }

     @Override
     public void onBindViewHolder(final DeMontageListAdapter.MyViewHolder holder, 
     final int position) {

     holder.txt_piston_code.setText(list.get(position).getPistonCode());

     // SET YOUR LISTENER TO EACH OF YOUR ITEM VIEWS
     holder.txt_piston_code.setOnClickListener(v ->
            onItemClickListener.onClickItem(position);
     }

     // ADD THIS INTERFACE AT THE END
     interface OnItemClickListener {
        void onClickItem(int position);
     }

Ваша деятельность должна реализовывать DemontageListAdapter.OnItemClickListener и переопределить его метод onClickItem:

    public class MyActivity implements DemontageListAdapter.OnItemClickListener {

        DemontageListAdapter adapter;

        { ... }

        adapter = new DemontageListAdapter (...)
        adapter.setOnItemClickListener(this); // ADD THIS BEFORE YOU SET YOUR ADAPTER TO YOUR ACTIVITY
        recyclerView.setAdapter(adapter);

        //OVERRIDE THIS METHOD OF YOUR INTERFACE
        @Override
        public void onClickItem(int position) {
            adapter.changeTextViewBackground(position);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...