我将ViewHolder
本身作为其OnClickListener
:
public class ListItemViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
...
@Override
public void onClick(View view) {
...
}
}
现在我可以处理activity / fragment中列表项的click事件。但是,我想对该项目给出“反馈”。例如,列表项包含TextView
和ProgressBar
,点击它时ProgressBar
会显示,TextView
将隐藏,活动/片段将会显示做类似HTTP请求的事情。请求结束后,ProgressBar
将变为不可见,TextView
将再次显示。如何通知列表项ViewHolder
此类进展?
答案 0 :(得分:1)
最简单的方法是在创建时传递Activity
public class ListItemViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
Activity mActivity;
public ListItemViewHolder (Activity activity) {
mActivity = activity;
}
@Override
public void onClick(View view) {
}
}
答案 1 :(得分:0)
只需使用onClick视图即可获得参考。例如:
@Override
public void onClick(View view) {
someText= (TextView) view.findViewById(R.id.someTextId);
someProgressBar= (ProgressBar) view.findViewById(R.id.someProgressBarId);
someText.setVisibility(View.GONE);
}
如果您想更具体,请为所需的项目
创建一个onClickListenerpublic void onBindViewHolder(final ViewHolder holder, final int position) {
final Someobject obj = objectList.get(position);
holder.vProgressBar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Do what you want, hide the text or whatever
}
});
...
}
希望它有所帮助!