How to avoid multiple button click at same time in android?

前端 未结 12 1985
太阳男子
太阳男子 2020-12-02 09:05

I\'m using two button in view. While clicking two button simultaneously it will goes to different activity at a time. How to avoid this?

I have tried like this, But

12条回答
  •  [愿得一人]
    2020-12-02 09:49

    For Xamarin users, I have created a solution that subclasses the button class:

    using Android.Content;
    using Android.Runtime;
    using Android.Util;
    using Android.Widget;
    using System;
    using System.Threading.Tasks;
    
    namespace MyProject.Droid.CustomWidgets
    {
        public class ButtonSingleClick : Button
        {
            private bool _clicked = false;
            public int _timer = 700;
            public new EventHandler Click;
    
            protected ButtonSingleClick(IntPtr javaReference, JniHandleOwnership transfer) : base(javaReference, transfer)
            {
            }
    
            public ButtonSingleClick(Context context) : base(context)
            {
                base.Click += SingleClick;
            }
    
            public ButtonSingleClick(Context context, IAttributeSet attrs) : base(context, attrs)
            {
                base.Click += SingleClick;
            }
    
            public ButtonSingleClick(Context context, IAttributeSet attrs, int defStyleAttr) : base(context, attrs, defStyleAttr)
            {
                base.Click += SingleClick;
            }
    
            public ButtonSingleClick(Context context, IAttributeSet attrs, int defStyleAttr, int defStyleRes) : base(context, attrs, defStyleAttr, defStyleRes)
            {
                base.Click += SingleClick;
            }
    
            private void SingleClick(object sender, EventArgs e)
            {
                if (!_clicked)
                {
                    _clicked = true;
    
                    Click?.Invoke(this, e);
    
                    Task.Run(async delegate
                    {
                        await Task.Delay(_timer);
                        _clicked = false;
                    });
                }
            }
        }
    }
    

提交回复
热议问题