我如何在自定义适配器中使用我的方法中的视图?

how can i use views from my method in custom adapter?

我尝试在我的自定义适配器中更改 textview 背景颜色,我创建了一个方法,因为我想从我的 activity 中实现这个方法。所以我想在自定义适配器中使用我的方法中的视图,就像我们如何使用 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(){


}

我想在我的 changeTextViewBackground() 方法中激活我的视图,例如 onBindViewHolder() 方法。

您需要为您的 viewholders 实现并设置一个侦听器接口,以便能够通过您的 activity:

与他们进行通信

您的自定义适配器:

     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);
     }

您的 activity 应该实现 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);
        }
    }