如何在 Xamarin 中实现 Android 界面

Rom*_*ych 1 android xamarin

如何在没有委托替代方案的情况下在 xamarin 中实现 android 接口。像这样ListPopupWindow.SetOnItemClickListener(AdapterView.IOnItemClickListener clickListener)

Rom*_*ych 5

xamarin 官方网站上有一个神的文档解决了这个主题Android Callable Wrappers 主要要记住的是子类化Java.Lang.Object

我还制作了自己的包装器,以便我可以使用委托在我的代码中重用它。

public class OnItemClickListener : Object, AdapterView.IOnItemClickListener{
        public delegate void ItemClick(AdapterView parent, View view, int position, long id);

        public OnItemClickListener(ItemClick itemClickDelegate){
            ItemClickDelegate = itemClickDelegate;
        }

        public ItemClick ItemClickDelegate { get; }

        public void OnItemClick(AdapterView parent, View view, int position, long id){
            ItemClickDelegate(parent, view, position, id);
        }
    }
Run Code Online (Sandbox Code Playgroud)

及用法:

new CallbackWrapers.OnItemClickListener(
                delegate (AdapterView parent, View view1, int position, long id) { 
                     //Do your stuff
                }));
Run Code Online (Sandbox Code Playgroud)