2017-08-07 5 views
1

J'essaie de créer une liaison Android Xamarin pour cette bibliothèque, https://github.com/thoughtbot/expandable-recycler-view.Le type 'GroupExpandedEventArgs' contient déjà une définition pour 'P0' Xamarin Android Liaisons Java pour Thoughtbot ExpandableRecyclerView

J'ai essayé ajouté ce qui suit à la Metadata.xml

<attr path="/api/package[@name='com.thoughtbot.expandablerecyclerview']/interface[@name='listeners.GroupExpandCollapseListener']/class[@name='models.ExpandableGroup']/field[@name='p0']" name="managedName">p0_2</attr>

mais je toujours obtenir l'erreur et donne un avertissement que le XPath ne correspond pas à tous les nœuds.

Voici le fichier et sur le terrain essaie de correspondre:

Com.Thoughtbot.Expandablerecyclerview.Listeners espace de noms {

// Metadata.xml XPath interface reference: path="/api/package[@name='com.thoughtbot.expandablerecyclerview.listeners']/interface[@name='GroupExpandCollapseListener']" 
[Register ("com/thoughtbot/expandablerecyclerview/listeners/GroupExpandCollapseListener", "", "Com.Thoughtbot.Expandablerecyclerview.Listeners.IGroupExpandCollapseListenerInvoker")] 
public partial interface IGroupExpandCollapseListener : IJavaObject { 

    // Metadata.xml XPath method reference: path="/api/package[@name='com.thoughtbot.expandablerecyclerview.listeners']/interface[@name='GroupExpandCollapseListener']/method[@name='onGroupCollapsed' and count(parameter)=1 and parameter[1][@type='com.thoughtbot.expandablerecyclerview.models.ExpandableGroup']]" 
    [Register ("onGroupCollapsed", "(Lcom/thoughtbot/expandablerecyclerview/models/ExpandableGroup;)V", "GetOnGroupCollapsed_Lcom_thoughtbot_expandablerecyclerview_models_ExpandableGroup_Handler:Com.Thoughtbot.Expandablerecyclerview.Listeners.IGroupExpandCollapseListenerInvoker, ExpandableRecyclerViewBindingsLibrary")] 
    void OnGroupCollapsed (global::Com.Thoughtbot.Expandablerecyclerview.Models.ExpandableGroup p0); 

    // Metadata.xml XPath method reference: path="/api/package[@name='com.thoughtbot.expandablerecyclerview.listeners']/interface[@name='GroupExpandCollapseListener']/method[@name='onGroupExpanded' and count(parameter)=1 and parameter[1][@type='com.thoughtbot.expandablerecyclerview.models.ExpandableGroup']]" 
    [Register ("onGroupExpanded", "(Lcom/thoughtbot/expandablerecyclerview/models/ExpandableGroup;)V", "GetOnGroupExpanded_Lcom_thoughtbot_expandablerecyclerview_models_ExpandableGroup_Handler:Com.Thoughtbot.Expandablerecyclerview.Listeners.IGroupExpandCollapseListenerInvoker, ExpandableRecyclerViewBindingsLibrary")] 
    void OnGroupExpanded (global::Com.Thoughtbot.Expandablerecyclerview.Models.ExpandableGroup p0); 

} 

public partial class GroupCollapsedEventArgs : global::System.EventArgs { 

    public GroupCollapsedEventArgs (global::Com.Thoughtbot.Expandablerecyclerview.Models.ExpandableGroup p0) 
    { 
     this.p0 = p0; 
    } 

    global::Com.Thoughtbot.Expandablerecyclerview.Models.ExpandableGroup p0; 
    public global::Com.Thoughtbot.Expandablerecyclerview.Models.ExpandableGroup P0 { 
     get { return p0; } 
    } 
} 

}

Le duplicata est sur cette partie:

global::Com.Thoughtbot.Expandablerecyclerview.Models.ExpandableGroup p0; 
public global::Com.Thoughtbot.Expandablerecyclerview.Models.ExpandableGroup P0 { 
    get { return p0; } 
} 

Ma question est de savoir comment mon xpath devrait ressembler afin d'éviter le doublon Définition de la propriété icate pour P0?

+0

Avez-vous trouvé une solution, je suis en train d'utiliser la même bibliothèque? –

+0

Oui je l'ai fait, laissez-moi ajouter comme une réponse depuis le xml est juste grand – Joseph

Répondre

0

Pour répondre à ma propre question, lors de la liaison de bibliothèques Java avec Xamarin, vous devrez mapper les interfaces aux événements dans .Net.

Ajouter ce qui suit dans le Metadata.xml tracera l'interface aux événements

<attr path="/api/package[@name='com.thoughtbot.expandablerecyclerview.listeners']/interface[@name='ExpandCollapseListener']/method[@name='onGroupExpanded']/parameter[1]" name="managedName">positionStart</attr> 
    <attr path="/api/package[@name='com.thoughtbot.expandablerecyclerview.listeners']/interface[@name='ExpandCollapseListener']/method[@name='onGroupExpanded']/parameter[2]" name="managedName">itemCount</attr> 
    <attr path="/api/package[@name='com.thoughtbot.expandablerecyclerview.listeners']/interface[@name='ExpandCollapseListener']/method[@name='onGroupCollapsed']/parameter[1]" name="managedName">positionStart</attr> 
    <attr path="/api/package[@name='com.thoughtbot.expandablerecyclerview.listeners']/interface[@name='ExpandCollapseListener']/method[@name='onGroupCollapsed']/parameter[2]" name="managedName">itemCount</attr> 

    <attr path="/api/package[@name='com.thoughtbot.expandablerecyclerview.listeners']/interface[@name='GroupExpandCollapseListener']/method[@name='onGroupExpanded']/parameter[1]" name="managedName">group</attr> 
    <attr path="/api/package[@name='com.thoughtbot.expandablerecyclerview.listeners']/interface[@name='GroupExpandCollapseListener']/method[@name='onGroupCollapsed']/parameter[1]" name="managedName">group</attr> 

    <attr path="/api/package[@name='com.thoughtbot.expandablerecyclerview.listeners']/interface[@name='OnGroupClickListener']/method[@name='onGroupClick']/parameter[1]" name="managedName">flatPosition</attr> 
+0

Salut ... J'ai le même problème Com.Wikitude.Tracker.IObjectTrackerListener.cs (47,47): Erreur CS0102: Le type 'TargetsLoadedEventArgs' contient déjà une définition de 'p0' (CS0102) ..... J'ai essayé d'ajouter \t P0 mais ne fonctionnant pas – pritam001

+0

Le' Com.Wikitude.Tracker' doit être le nom du paquet Java et non l'espace de nommage C#. – Joseph