آموزش DoubleClickListener در کاتلین
سلام دوستان عزیز در این قسمت از آموزش کاتلین وب سایت به آموزش DoubleClickListener در کاتلین می پردازیم از به صورت پیشفرض در اندروید همچین ClickListner وجود ندارد ولی برای اینکه از آن در پروژه خود استفاده کنید می توانید آن را ایجاد کنید در ادامه با ما همراه باشید تا نحوه ساخت این کلاس را یاد گیرید. ساخت یک Abstract از DoubleClickListener ساده ترین روش برای ساخت این کلاس است پس بدون مقدمه میرم سراغ کد.یک کلاس به نام DoubleClickListener ایجاد کرده و آن را همانند زیر تغییر دهید.
در این بخش از متد OnClick استفاده شده است و فقط فرق آن در این بخش است که کلاس از نوع abstract است پس اگر کاربری یکبار کلیک کند و دوباره عمل کلیک را انجام دهد مقادیر از ابتدا مقداری دهی نمی شوند پس کاری که انجام شده است زمان فعلی که کاربر کلیک کرده را گرفته و بررسی می کنیم 300 میلی ثانیه از آن گذشته است یا خیر شما می توانید این مقدار را بیشتر نیز کنید. فقط کافی است مقدار DOUBLE_CLICK_TIME_DELTA را تغییر دهید.
کد بالا در صورتی که کاربر دو بار بروی view کلیک کند یک Toast نمایش میدهد. خوبی این کلاس در این است که شما می توانید برای هر نوع view که در صفحه قرار می دهید آن را تعریف کنید حتی اگر view شما سفارشی شده باشد فقط توجه کنید باید view شما از رویداد OnClick پشتیبانی کند در غیر اینصورت کد کار نخواهد کرد. حتما این آموزش را با دوستانی که در حال توسعه اپلیکیشن اندروید هستند به اشتراک قرار دهید.این آموزش هم به پایان رسید.موفق و پیروز باشید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | package com.doubletaplistener import android.view.View abstract class DoubleClickListener : View.OnClickListener { private var lastClickTime: Long = 0 override fun onClick(v: View) { val clickTime = System.currentTimeMillis() if (clickTime - lastClickTime < DOUBLE_CLICK_TIME_DELTA) { onDoubleClick(v) lastClickTime = 0 } lastClickTime = clickTime } abstract fun onDoubleClick(v: View) companion object { private const val DOUBLE_CLICK_TIME_DELTA: Long = 300 //milliseconds } } |
آموزش DoubleClickListener در کاتلین
نحوه استفاده از این کلاس به چه شکل است ؟فرض می کنیم یک View در activity_main داریم و همانند زیر در بخش برای آن Click را set می کنیم.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | package com.doubletaplistener import android.os.Bundle import android.view.View import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // handle double tap event doubleTap.setOnClickListener(object : DoubleClickListener() { override fun onDoubleClick(v: View) { Toast.makeText(applicationContext,"Double Clicked Attempts",Toast.LENGTH_SHORT).show() } }) } } |