我正在绑定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)'有什么方法可以修复它吗?
发布于 2017-10-20 00:40:27
修复此问题的最简单方法是使用分部类。您可以通过使用适当的命名空间创建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#中实现这些方法:
发布于 2022-01-25 12:45:40
检查您生成的源代码。该方法可能实际存在,但使用的是虚拟标志而不是覆盖标志。如果是这样的话,你可以像这样在元数据中用managedOverride修复它:你可能需要在这些元素之外添加一些元素。
<attr path="/api/package[@name='com.stfalcon.chatkit.messages']/class[@name='MessagesListAdapter']/method[@name='onCreateViewHolder']" name="managedOverride">override</attr>
<attr path="/api/package[@name='com.stfalcon.chatkit.messages']/class[@name='MessagesListAdapter']/method[@name='onBindViewHolder']" name="managedOverride">override</attr>https://stackoverflow.com/questions/45754424
复制相似问题