Convert Android Java code to Xamarin C# -


i problem converting code native android java code xamarin c# android code

i have class shall me delay start in custom autocomletetextview searching:

public class delayautocompletetextview : autocompletetextview {     public static context _context {get; set;}     private static android.util.iattributeset _attrs { get; set; }  public delayautocompletetextview(context context, android.util.iattributeset attrs) : base(context, attrs) {     _context = context;     _attrs = attrs; }  private static int message_text_changed = 100; private static int default_autocomplete_delay = 750;  private int mautocompletedelay = default_autocomplete_delay; private progressbar mloadingindicator;  public class mhandler : handler {     public override void handlemessage(message msg)     {         delayautocompletetextview.base.performfiltering((java.lang.icharsequence)msg.obj, msg.arg1);     } }  public void setloadingindicator(progressbar progressbar) {     mloadingindicator = progressbar; }  public void setautocompletedelay(int autocompletedelay) {     mautocompletedelay = autocompletedelay; }  protected override void performfiltering(java.lang.icharsequence text, int keycode) {     if (mloadingindicator != null)     {         mloadingindicator.visibility = viewstates.visible;     }      mhandler.removemessages(message_text_changed);     mhandler.sendmessagedelayed(mhandler.obtainmessage(message_text_changed, text), mautocompletedelay); }  public override void onfiltercomplete(int count) {     if (mloadingindicator != null)     {         mloadingindicator.visibility = viewstates.gone;     }      base.onfiltercomplete(count); }} 

but have 3 error messages:

  • 1) delayautocompletetextview.base.performfiltering((java.lang.icharsequence)msg.obj, msg.arg1);

  • 2) mhandler.removemessages(message_text_changed);

  • 3) mhandler.sendmessagedelayed(mhandler.obtainmessage(message_text_changed, text), mautocompletedelay);

original code on java copied github

please me convert. sorry bad english )

the first error happens because unlike java, nested classes in c# not able access parent class's this pointer separate entity.

instead of making mhandler class, suggest make variable , use handler(action<message>) constructor create handler can access members of delayautocompletetextview.

private readonly handler mhandler = new handler(delegate (message msg) {     base.performfiltering((java.lang.icharsequence)msg.obj, msg.arg1); }); 

the second , third errors simple spelling mistakes.

the xamarin equivalents of removemessages, sendmessagedelayed, obtainmessage removemessages, sendmessagedelayed, obtainmessage, following pascalcase method naming convention outlined microsoft c# coding style guide. all xamarin base class libraries , generated bindings java libraries follow convention.

i suggest change name of fields msomefield somefield following ms c# coding style guide.


Comments

Popular posts from this blog

jOOQ update returning clause with Oracle -

java - Warning equals/hashCode on @Data annotation lombok with inheritance -

java - BasicPathUsageException: Cannot join to attribute of basic type -