Progress bars are used to show progress of a task. For example, when you are uploading or downloading something from the internet, it is better to show the progress of download/upload to the user.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
tools:context=".MainActivity" >
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="23dp"
android:layout_marginTop="20dp"
android:indeterminate="false"
android:max="100"
android:minHeight="50dp"
android:minWidth="200dp"
android:progress="1" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/progressBar1"
android:layout_below="@+id/progressBar1"/>
</RelativeLayout>
MainActivity.kt
package com.androidian.progressbar
import android.os.Bundle
import android.os.Handler
import android.view.View
import android.widget.ProgressBar
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
private var progressBar: ProgressBar? = null
private var progressStatus = 0
private var textView: TextView? = null
private val handler = Handler()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
progressBar = findViewById<View>(R.id.progressBar1) as ProgressBar
textView = findViewById<View>(R.id.textView1) as TextView
// Start long running operation in a background thread
Thread {
while (progressStatus < 100) {
progressStatus += 1
// Update the progress bar and display the
//current value in the text view
handler.post {
progressBar!!.progress = progressStatus
textView!!.text = progressStatus.toString() + "/" + progressBar!!.max
}
try {
// Sleep for 200 milliseconds.
//Just to display the progress slowly
Thread.sleep(200)
} catch (e: InterruptedException) {
e.printStackTrace()
}
}
}.start()
}
}