【发布时间】:2017-04-22 14:11:59
【问题描述】:
将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);
}
【问题讨论】:
标签: android data-binding android-recyclerview settext android-viewholder