xamarin.android绑定thorw'没有实现继承的抽象成员'RecyclerView.Adapter.OnCreateViewHolder(ViewGroup,int)'

时间:2017-08-18 10:28:04

标签: c# binding xamarin.android

我绑定了github项目ChatKit

我这样做xml

<attr name="managedType" path="/api/package[@name='com.stfalcon.chatkit.messages']/class[@name='MessagesListAdapter']/method[@name='onBindViewHolder']/parameter[1]">Android.Support.V7.Widget.RecyclerView.ViewHolder</attr>
  <attr name="managedType" path="/api/package[@name='com.stfalcon.chatkit.messages']/class[@name='MessagesListAdapter']/method[@name='onBindViewHolder']/parameter[2]">int</attr>

但是vs仍然为我抛出错误:

1>D:\TempApps\ChatKitDebugBinding\ChatKitDebugBinding\obj\Debug\generated\src\Com.Stfalcon.Chatkit.Messages.MessagesListAdapter.cs(10,23,10,42): error CS0534: 'MessagesListAdapter' does not implement inherited abstract member 'RecyclerView.Adapter.OnCreateViewHolder(ViewGroup, int)'

还有什么方法可以解决它吗?

1 个答案:

答案 0 :(得分:0)

解决此问题的最简单方法是使用部分类。您可以通过使用相应的命名空间创建MessagesListAdapter的部分类来实现此目的:

namespace Com.Your.Namespace
{
    partial class MessagesListAdapter
    {
    }
}

接下来,您可以在此分部类中实现覆盖:

public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
    throw new NotImplementedException();
}

public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
{
    throw new NotImplementedException();
}

最后,您可以查看source code并使用新生成的绑定类在C#中实现这些方法:

OnBindViewHolder

OnCreateViewHolder