【问题标题】:Click event does not fire on button created with LayoutInflater使用 LayoutInflater 创建的按钮不会触发 Click 事件
【发布时间】:2020-07-22 16:07:18
【问题描述】:

我在服务中创建了一个浮动视图,并为点击设置了回调函数。

    public override void OnCreate()
    {
        var li = (LayoutInflater)this.GetSystemService(Context.LayoutInflaterService).JavaCast<LayoutInflater>();

        var myview = li.Inflate(Resource.Layout.activity_main, null);

        windowManager.AddView(myview, layoutParams);

        myview.FindViewById<Button>(Resource.Id.btnRecord).Click += BackgroundService_Click;

        base.OnCreate();
    }


    private void BackgroundService_Click(object sender, EventArgs e)
    {
        Debugger.Break();
    }

当我单击按钮时,不会调用函数BackgroundService_Click()

我怎样才能让点击起作用?

【问题讨论】:

    标签: android xamarin button click layout-inflater


    【解决方案1】:

    就像在 java 中一样,我们所做的就是编写 按钮 b; 然后 b.setOnClickListner(); “我们还给出了点击的上下文” 类似于 classname.this

    然后在调用中,我们写下必须执行的操作。

    在你的代码中检查一下,也许会有所帮助。

    【讨论】:

    • 我将 Android.Views.View.IOnClickListener 添加到我的服务类并添加了 OnClick(View v) 回调,但是当我单击按钮时它也不会被调用。使用 SetOnClickListener() 时。
    【解决方案2】:

    我在设置LayoutParams时将类型从WindowManagerTypes.SystemOverlay切换到WindowManagerTypes.SystemAlert

    【讨论】:

    • @LeoZhu-MSFT 是的,2 天后
    猜你喜欢
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-08
    • 2011-09-26
    • 2012-05-14
    • 1970-01-01
    相关资源
    最近更新 更多