我如何在自定义适配器中使用我的方法中的视图?
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);
}
}
我尝试在我的自定义适配器中更改 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);
}
}