Gud*_*din 13 android android-recyclerview
类似的问题已经被问到,但我不能让他们中的任何一个工作.
我想要的是在RecyclerView中选择项目,更改该项目视图的背景,并存储所选项目的位置.
主要问题是你有onCreateViewHolder(在适配器中),onBindViewHolder(在适配器中)和ViewHolder构造函数,并且每个人都在使用不同的方法.现在,我甚至不知道将onClickListener放在哪里(在以前的项目中我把它放在ViewHolder中),因为人们也在建议另外两种方法.
我的想法是将每个ViewHolder(或View)存储在列表中,这样我就可以引用每一行,并从那里更改背景.但这对我不起作用,因为当我尝试从三个地方(onCreateVH,onBindVH,VH类)中的任何一个添加到View(或ViewHolders)列表时,我的应用程序因某种原因崩溃(空指针ex).
有什么建议?在哪里以及如何实施它?
Sad*_*hiv 13
使全局变量存储位置并处理单击侦听器ViewHolder.Onclick项目,更改全局位置值
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
globalPosition=getAdapterPosition();
notifyDataSetChanged();
}
});
Run Code Online (Sandbox Code Playgroud)
然后在 onBindViewHolder
if(postion==globalPosition)
{
//change color like
textview.setTextColor(Color.RED);
}
else
{
//revert back to regular color
textview.setTextColor(Color.WHITE);
}
Run Code Online (Sandbox Code Playgroud)
使用此代码,您单击的项目将显示为红色,而其他所有项目均为白色.
| 归档时间: |
|
| 查看次数: |
25750 次 |
| 最近记录: |