ساعت کرنومتر در کاتلین | آموزش ساخت Stopwatch در کاتلین

سلام خدمت همه عزیزان کدایت ، با قسمتی دیگر از مجموعه مباحث آموزش کاتلین  در خدمت شما  هستیم. امروز قصد دارم برای شما نحوی پیاده سازی یک Stopwatch در کاتلین یا همان ساعت کرنومتر در کاتلین را آموزش دهیم .

ساعت کرنومتر ( Stopwatch) در کاتلین چیست و چگونه پیاده سازی میشود؟

ما در طول برنامه نویسی باید کلیه مباحثی که برایمان لازم هست را باید یادبگیریم . تا در مواردی که نیاز هست از آنها استفاده کنیم . ساعت کرنومتر در کاتلین یا به اصطلاع stopwatch  یکی از همین موارد میباشد . ساعت کرنومتر برای گرفتن تایم ، تا زمانی که ما تایمر را متوقف نکرده باشیم میباشد . ما امروز قصد داریم ساعت کرنومتر  را با یک پروژه خیلی کوچک برای شما عزیزان یاد دهیم تا در برنامه نویسی خودتون به کار ببرید . ما در ساخت این stopwatch در کاتلین از هیچ گونه کتابخانه ای مربوط به تایمر توقف استفاده نکردیم و فقط با چند خط کد نویسی و استفاده از Handler ها این برنامه را برای شما آموزش میدهیم

ساعت کرنومتر در کاتلین

پیاده سازی ساعت کرنومتر در برنامه نویسی کاتلین

ما در این پروژه از یک ویجت TextView برای نمایش تایمر و چند ویجت Button از جمله Start برای شروع تایمر ، Pause برای توقف و همچنین Reset برای شروع مجدد تایمر استفاده میکنیم .  ما برای اینکه شما عزیزان راحت بفهمید سعی کردیم آموزشمان با پروژه همرا باشد . برای ساخت ساعت کرنومتر در کاتلین ایتدا یک اکتیویتی درست کنید و نام دلخواه برای آن قرار دهید . بعد در قسمت لایه XML این اکتیویتی کد های زیر را قرار دهید .

activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="209dp"
        android:layout_height="47dp"
        android:layout_gravity="center"
        android:layout_marginTop="50dp"
        android:gravity="center_horizontal|center_vertical"
        android:text="00:00:00"
        android:textSize="28sp"
        android:textStyle="bold" />

    <LinearLayout

        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="5dp"
        android:gravity="center"
        android:orientation="horizontal">


        <Button
            android:id="@+id/btnStop"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Stop" />

        <Button
            android:id="@+id/btnReset"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_weight="1"
            android:text="Reset" />

        <Button
            android:id="@+id/btnStart"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Start" />


    </LinearLayout>

</LinearLayout>

بعد از قرار دادن کد های بالا حالا نوبت کدنویسی بخش Activiy میباشد . کد های این بخش به مانند زیر میباشد .

package com.example.stoptimer

import android.content.Intent
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.view.View
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.os.postDelayed
import java.util.concurrent.TimeUnit

class MainActivity : AppCompatActivity(), View.OnClickListener {
    lateinit var txt: TextView
    lateinit var btnstop: Button
    lateinit var btnstart: Button
    lateinit var btnreset: Button
    private val handler: Handler = Handler()

    var seconds: Int = 0
    var running: Boolean = true

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        txt = findViewById(R.id.textView)
        btnstop = findViewById(R.id.btnStop)
        btnstart = findViewById(R.id.btnStart)
        btnreset = findViewById(R.id.btnReset)

        btnstop.setOnClickListener(this)
        btnstart.setOnClickListener(this)
        btnreset.setOnClickListener(this)

        startTimer()



    }

    private fun startTimer() {
        val handler = Handler()

        handler.postDelayed(UpdateSongTime, 0)

    }

    override fun onClick(v: View?) {
        when (v?.id) {
            R.id.btnStart -> {
                running = true
            }
            R.id.btnStop -> {
                running = false
            }
            R.id.btnReset -> {
                running = false
                seconds = 0
            }
        }
    }

    private val UpdateSongTime: Runnable = object : Runnable {
        override fun run() {
            var hrs: Int = seconds / 3600
            var min: Int = (seconds % 3600) / 60
            var sec: Int = seconds % 60
            var time = String.format("%02d : %02d : %02d", hrs, min, sec)
            txt.text = time

            if (running) {
                seconds++
            }
            handler.postDelayed(this, 0)
        }
    }


}

در این قسمت کدنویسی ما به پایان میرسد و به همین راحتی یک ساعت کرنومتر در کاتلین درست کردیم و میتوانیم از آن در پروژه های بزرگتر خودمون استفاده کنیم. از این که تا اینجا کنار ما بودید بسیار سپاس گذاریم .

خروجی پروژه به صورت زیر میباشد .

برای امتیاز به این نوشته کلیک کنید!
[کل: 2 میانگین: 5]
اشتراک‌گذاری

فرشید حبیبی هستم . برنامه نویس موبایل، سئو و وردپرس همچنین علاقه مند به تولید محتوا در زمینه برنامه نویسی و تکنولوژی های روز دنیا.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *