آموزش Progressbar در کوتلین – Determinate
سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش Progressbar در کوتلین – Determinate می پردازیم از Progressbar به منظور نمایش پیشرفت یک کار استفاده می شود هر Progressbar را به دو شکل می توان استفاده کرد Indeterminate و Determinate در ادامه با ما همراه باشید تا نحوه استفاده از Progressbar را یاد گیرید.
در صورتی که تازه با این زبان آشنا شده اید لینک های زیر را نیز می توانید بررسی کنید.
کوتلین (kotlin) چیست ؟
چرا باید از زبان کوتلین در اندروید استفاده کنیم ؟
آموزش اضافه کردن kotlin به اندروید استودیو
خب ابتدا بهتر است دو نوع Progressbar یا نوار پیشرفت Indeterminate و Determinate را بررسی کنیم.
Indeterminate : زمانی که شما نمی توانید زمان که یک کار طول می کشد را به دست آوردید از این نوع progressbar استفاده می شود به صورت پیشفرض Progressbar بروی Indeterminate است . Indeterminate به معنی غیر قابل تصمیم است.
Determinate : زمانی استفاده می شود که process یا عمل شما معلوم باشد یعنی از مقدار زمان x تا مقدار زمان y طول می کشد یک کاری انجام شود و اول آخر آن معلوم است و Determinate به معنی قابل تصمیم گیری است.
ابتدا یک لایه به نام activity_main.xml ایجاد می کنیم می توانید از لایه های پیشفرض خود نیز استفاده کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" tools:context="com.tutorialkart.progressbarexample.MainActivity"> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="116dp" android:text="Do some stuff" /> <ProgressBar style="@android:style/Widget.ProgressBar.Horizontal" android:id="@+id/progressBar1" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:progress="0"/> </LinearLayout> |
در بالا یک ProgressBar همراه با یک Button قرار دادیم در بالا ProgressBar ما به صورت Horizontal یا افقی است.
حال باید اکتیویتی مربوط به آن را ایجاد یا از اکتیویتی های خود استفاده کنید ما یک اکتیویتی از نوع کوتلین (kotlin) با نام MainActivity.kt ایجاد می کنیم و کدهای زیر را در آن قرار میدهیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | package ir.programchi.progressbar import android.os.Bundle import android.support.v7.app.AppCompatActivity import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { private var progressBarStatus = 0 var dummy:Int = 0 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) var btnStartProgress = this.button1 var progressBar = this.progressBar1 btnStartProgress.setOnClickListener { v -> Thread(Runnable { while (progressBarStatus < 100) { try { dummy = dummy+25 Thread.sleep(1000) } catch (e: InterruptedException) { e.printStackTrace() } progressBarStatus = dummy progressBar.progress = progressBarStatus } }).start() } } } |
در بالا با استفاده از یک Thread عمل پرشدن ProgressBar را شبیه سازی کردیم عمل شبیه سازی در کلیک رویداد دکمه قرار دارد و با کلیک بروی آن این عمل انجام می شود کوتلین (kotlin) تا حدودی به جاوا در اندروید استودیو است اما syntax مربوط به هر کلاس به گونه ای دیگر استفاده می شود.
این آموزش هم به پایان رسید.
موفق باشید.