آموزش ProgressBar به زبان کوتلین در اندروید
سلام دوستان و توسعه دهندگان عزیز در این سری از آموزش برنامه نویسی اندروید به زبان کوتلین (kotlin) به آموزش ProgressBar به زبان کوتلین در اندروید می پردازیم از ProgessBar به منظور نشان دهنده پیشرفت عملیات استفاده می شود در ادامه با ما همراه باشید تا نحوه استفاده از ProgressBar را در کوتلین (kotlin) یاد گیرید.
در صورتی که تازه با این زبان آشنا شده اید لینک های زیر را نیز می توانید بررسی کنید.
کوتلین (kotlin) چیست ؟
چرا باید از زبان کوتلین در اندروید استفاده کنیم ؟
آموزش اضافه کردن kotlin به اندروید استودیو
همانطور که در بالا گفتیم از ProgressBar به منظور نمایش پیشرفت عملیات استفاده می شود.
در ادامه برخی از Attribute های ProgressBar را مورد بررسی قرار می دهیم.
android:max : بیشترین مقدار عملیات را تنظیم می کند.
android:min : کمترین مقدار عملیات را تنظیم می کند.
android:progress : مقدار پیشفرض عملیات را تعیین می کند.
android:id : یک آیدی منحصر به فرد ایجاد می کند.
android:indeterminate : نوع نامعین را تعیین می کند (به چندین حالت مختلف تقسیم می شود.)
در layout اصلی خود یک ProgressBar و یک Button قرار دهید. وارد activity_main.xml شده و کدهای زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical"> <ProgressBar android:id="@+id/progressBar" style="?android:attr/progressBarStyle" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hide Progressbar"/> </LinearLayout> |
در بالا یک Progressbar و یک Button قرار دادیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | package ir.programchi.progressbar import android.os.Bundle import android.support.v7.app.AppCompatActivity import android.view.View import android.widget.Button import android.widget.ProgressBar class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val progressBar = findViewById<ProgressBar>(R.id.progressBar) if (progressBar != null) { val btn = findViewById<Button>(R.id.button) btn?.setOnClickListener { val visibility = if (progressBar.visibility == View.GONE) View.VISIBLE else View.GONE progressBar.visibility = visibility val btnText = if (progressBar.visibility == View.GONE) "SHOW PROGRESSBAR" else "HIDE PROGRESSBAR" btn.text = btnText } } } } |
در بالا ابتدا Progressbar را find کردیم سپس بعد از کلیک آت را gone خواهیم کرد.
در ادامه یک مثال کمی کاربرد تر برای شما قرار میدهیم در نظر بگیرید یک layout همانند زیر دارید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?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="ir.programchi.MainActivity"> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Do some stuff" /> <ProgressBar android:id="@+id/progressBar1" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:visibility="gone"/> </LinearLayout> |
به صورت پیشفرض Progressbar پنهان است بعد از کلیک نمایان خواهد شد.
در 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 29 30 31 32 | package ir.programchi.progressbarindex import android.os.Bundle import android.support.v7.app.AppCompatActivity import android.view.View import android.widget.ProgressBar import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val btnStartProgress = this.button1 val progressBar: ProgressBar = this.progressBar1 btnStartProgress.setOnClickListener { v -> Thread(Runnable { this@MainActivity.runOnUiThread(java.lang.Runnable { progressBar.visibility = View.VISIBLE }) try { var i=0; while(i<Int.MAX_VALUE){ i++ } } catch (e: InterruptedException) { e.printStackTrace() } this@MainActivity.runOnUiThread(java.lang.Runnable { progressBar.visibility = View.GONE }) }).start() } } } |
در بالا یک Thread ساختیم که و در مدت زمانی ProgressBar را به نمایش در خواهیم آورد و در نهایت آن را gone می کنیم.
این آموزش هم به پایان رسید.
موفق باشید.