2016-08-18 69 views
0

我想通过在回调函数中传递视图持久性来在另一个类中累积我的recyclerview视图持有者的值。在运行时,我可以看到这些项目的值,但是如何从视图持有者中提取这些值?我想提取回调方法中的textview值。我如何实现这一目标?如何获取回调类中的视图持有者项目

这里是我的viewholder类

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 
     } 
    } 
+0

请张贴相关的代码示例,这是很难回答你的问题不看到你的ViewHolder实现。 – Egor

+0

@Egor我用代码更新了我的问题。 –

回答

1

看起来回调给你一个ViewHolder,所以你应该能够通过提供ViewHolder得到的值:

if(viewHolder instanceof CommentViewHolder) { 
    CommentViewHolder holder = (CommentViewHolder) viewHolder; 
    String username = holder.username.getText(); 
} 
+0

但用户名不是查看者对象的方法。我得到编译器错误,如果我这样做 –

+0

啊,对,所以检查'ViewHolder'返回的是'CommentViewHolder'的一个实例。我更新了我的代码。 – Bryan

+0

哦,是的,我认为这是正确的做法。我会给它一个镜头。 –

相关问题