将OnClickListeners
设置为RecyclerView
中建议在内部类中执行此操作的项目,如下所示:
public ViewHolder(View itemView) {
super(itemVIew);
nameTextView = (TextView) itemView.findViewById(R.id.item_name);
itemView.setOnClickListener(this);
}
当我看到用于设置文字的代码时,通常采用onBindViewHolder
方法:
@Override
public void onBindViewHolder(SetPlayerNameViewHolder holder, int position) {
holder.nameTextView.setText(String.valueOf("Random Text"));
}
如果文本永远不会改变,那么它不应该在内部类中吗?
public ViewHolder(View itemView) {
super(itemVIew);
nameTextView = (TextView) itemView.findViewById(R.id.item_name);
nameTextView.setText(String.valueOf("Random Text"));
itemView.setOnClickListener(this);
}
修改:如果您为所有TextViews
检索的值不同,但在RecyclerView
重新加载时不应更新
public ViewHolder(View itemView) {
super(itemVIew);
nameTextView = (TextView) itemView.findViewById(R.id.item_name);
// Not the actual methods, but to make it more readable
int i = itemView.getPosition()
String randomText = getTextFromDatabaseWhereRowIs(i)
nameTextView.setText(String.valueOf(randomText));
itemView.setOnClickListener(this);
}
答案 0 :(得分:3)
是的,你是对的......
1。 onBindViewHolder(..., int position)
调用individual
项RecyclerView
。如果text
的{{1}}与item
不同,则应使用onBindViewHolder()
position
使用text
来获取正确的@Override
public void onBindViewHolder(SetPlayerNameViewHolder holder, int position) {
String item = YourList.get(position); // For example YourList is an ArrayList of String
holder.nameTextView.setText(item);
}
。
text
2。如果每个item
修复了ViewHolder
,那么您可以按照说明从XML
进行设置,也可以从TextView修复android:text="YOUR_TEXT"
{1}}使用public ViewHolder(View itemView) {
super(itemVIew);
nameTextView = (TextView) itemView.findViewById(R.id.item_name);
nameTextView.setText("Random Text");
}
。
cap = cv2.VideoCapture(0)
希望这会有所帮助〜
答案 1 :(得分:0)
此方法在内部调用onBindViewHolder(ViewHolder,int)以使用给定位置的项目更新RecyclerView.ViewHolder内容,并设置一些要由RecyclerView使用的私有字段。
您从参数收到的ViewHolder来自Cache
或RecyclerView.RecycledViewPool
。
RecycledViewPool允许您在多个RecyclerViews之间共享视图。 如果要在RecyclerViews之间回收视图,请创建RecycledViewPool的实例并使用setRecycledViewPool(RecycledViewPool)。 如果您不提供池,RecyclerView会自动为其自身创建一个池。
因此,如果您未在viewType
中使用相同的RecyclerView
和相同的布局,TextView
的{{1}}的文字在RecyclerView
中不同,那么您就是对。但是,如果您这样做,那么RecyclerView
可能不会调用createViewHolder(ViewGroup parent, int viewType)
,因为它可能来自RecycledViewPool
的viewHolder。在这种情况下,您可以在onViewAttachedToWindow(VH holder)