如何在回调中获取查看器项目 class
How to acquire viewholder items in a callback class
我正在尝试通过在回调函数中传递 viewholder 来在另一个 class 中累积我的 recyclerview viewholder 的值。在运行时,我可以看到项目及其值,但如何从视图持有者中提取这些值?我想在回调方法中提取 textview 值。我该如何实现?
这是我的 viewholder 的实现 class
public class CommentViewHolder : RecyclerView.ViewHolder, IItemTouchHelperViewHolder
{
public TextView username;
public ImageView userphoto;
public TextView time;
public TextView comment;
public View _itemView;
public CommentViewHolder(View view)
: base(view)
{
_itemView = view;
}
public void OnItemClear()
{
_itemView.SetBackgroundColor(Color.White);
}
public void OnItemSelected()
{
_itemView.SetBackgroundColor(Color.LightGray);
}
}
这是获取viewholder的回调方法。
public override int GetMovementFlags(Android.Support.V7.Widget.RecyclerView recyclerView, Android.Support.V7.Widget.RecyclerView.ViewHolder viewHolder)
{
if (recyclerView.GetLayoutManager() is GridLayoutManager)
{
//do something
}
else
{
//do something
}
}
看起来回调给了你一个 ViewHolder
,所以你应该能够通过提供的 ViewHolder
:
获取值
if(viewHolder instanceof CommentViewHolder) {
CommentViewHolder holder = (CommentViewHolder) viewHolder;
String username = holder.username.getText();
}
我正在尝试通过在回调函数中传递 viewholder 来在另一个 class 中累积我的 recyclerview viewholder 的值。在运行时,我可以看到项目及其值,但如何从视图持有者中提取这些值?我想在回调方法中提取 textview 值。我该如何实现?
这是我的 viewholder 的实现 class
public class CommentViewHolder : RecyclerView.ViewHolder, IItemTouchHelperViewHolder
{
public TextView username;
public ImageView userphoto;
public TextView time;
public TextView comment;
public View _itemView;
public CommentViewHolder(View view)
: base(view)
{
_itemView = view;
}
public void OnItemClear()
{
_itemView.SetBackgroundColor(Color.White);
}
public void OnItemSelected()
{
_itemView.SetBackgroundColor(Color.LightGray);
}
}
这是获取viewholder的回调方法。
public override int GetMovementFlags(Android.Support.V7.Widget.RecyclerView recyclerView, Android.Support.V7.Widget.RecyclerView.ViewHolder viewHolder)
{
if (recyclerView.GetLayoutManager() is GridLayoutManager)
{
//do something
}
else
{
//do something
}
}
看起来回调给了你一个 ViewHolder
,所以你应该能够通过提供的 ViewHolder
:
if(viewHolder instanceof CommentViewHolder) {
CommentViewHolder holder = (CommentViewHolder) viewHolder;
String username = holder.username.getText();
}