Article image User Interface Components in Android

21. User Interface Components in Android

Page 21 | Listen in audio

In Android app development, the user interface (UI) is a crucial aspect that determines how users interact with your application. Kotlin, with its concise and expressive syntax, offers a powerful way to create Android UIs that are both functional and aesthetically pleasing. Understanding the various UI components available in Android is essential for building intuitive and engaging apps. In this text, we'll explore some of the most commonly used UI components in Android development and how they can be utilized effectively using Kotlin.

1. TextView

The TextView is one of the most basic UI components in Android. It is used to display text to the user. With Kotlin, you can easily manipulate the text properties, such as size, color, and style. For example:


val textView = TextView(this)
textView.text = "Hello, Kotlin!"
textView.textSize = 20f
textView.setTextColor(Color.BLACK)

2. EditText

The EditText component allows users to input text. It's commonly used in forms and login screens. You can customize its appearance and behavior using Kotlin:


val editText = EditText(this)
editText.hint = "Enter your name"
editText.inputType = InputType.TYPE_CLASS_TEXT

3. Button

Buttons are interactive components that users can click to perform actions. In Kotlin, setting up a button and its click listener is straightforward:


val button = Button(this)
button.text = "Submit"
button.setOnClickListener {
    Toast.makeText(this, "Button clicked!", Toast.LENGTH_SHORT).show()
}

4. ImageView

The ImageView component is used to display images in your app. You can load images from resources or URLs using libraries like Glide or Picasso:


val imageView = ImageView(this)
imageView.setImageResource(R.drawable.sample_image)

5. RecyclerView

The RecyclerView is a more advanced and flexible version of ListView. It is used to display large sets of data efficiently. With Kotlin, you can set up a RecyclerView with an adapter and layout manager:


val recyclerView = RecyclerView(this)
recyclerView.layoutManager = LinearLayoutManager(this)
recyclerView.adapter = MyAdapter(dataList)

6. CardView

The CardView component provides a card-like layout with rounded corners and shadow effects. It is often used in conjunction with RecyclerView to create card-based layouts:


val cardView = CardView(this)
cardView.radius = 8f
cardView.setCardBackgroundColor(Color.WHITE)

7. Toolbar

The Toolbar is a versatile component that can replace the traditional action bar. It allows for more customization and flexibility:


val toolbar = findViewById<Toolbar>(R.id.toolbar)
setSupportActionBar(toolbar)
toolbar.title = "My App"

8. NavigationView

The NavigationView is used to create a navigation drawer, which is a common design pattern in Android apps. It provides a convenient way to navigate between different sections of your app:


val drawerLayout = findViewById<DrawerLayout>(R.id.drawer_layout)
val navigationView = findViewById<NavigationView>(R.id.nav_view)
navigationView.setNavigationItemSelectedListener { menuItem ->
    // Handle menu item clicks
    true
}

9. FloatingActionButton

The FloatingActionButton (FAB) is a circular button that floats above the UI, commonly used for primary actions. It can be easily added and customized:


val fab = findViewById<FloatingActionButton>(R.id.fab)
fab.setOnClickListener {
    // Handle FAB click
}

10. ConstraintLayout

ConstraintLayout is a powerful layout manager that allows you to create complex layouts with a flat view hierarchy. It provides flexibility and performance benefits:


val constraintLayout = ConstraintLayout(this)
val constraints = ConstraintSet()
constraints.clone(constraintLayout)
// Define constraints here
constraints.applyTo(constraintLayout)

11. ViewPager2

ViewPager2 is used for creating swipeable views, such as image galleries or onboarding screens. It offers a simple way to implement horizontal scrolling:


val viewPager = findViewById<ViewPager2>(R.id.view_pager)
viewPager.adapter = MyPagerAdapter(fragmentActivity)

12. TabLayout

The TabLayout is used in conjunction with ViewPager2 to create tabbed interfaces. It provides an intuitive way to navigate between different sections:


val tabLayout = findViewById<TabLayout>(R.id.tab_layout)
TabLayoutMediator(tabLayout, viewPager) { tab, position ->
    tab.text = "Tab $position"
}.attach()

13. ProgressBar

The ProgressBar is a visual indicator of progress in an operation. It can be either indeterminate or determinate:


val progressBar = ProgressBar(this)
progressBar.isIndeterminate = true

14. SeekBar

The SeekBar is a slider that allows users to select a value from a range. It's commonly used for volume controls or brightness settings:


val seekBar = SeekBar(this)
seekBar.max = 100
seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
    override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
        // Handle progress change
    }
    override fun onStartTrackingTouch(seekBar: SeekBar?) {}
    override fun onStopTrackingTouch(seekBar: SeekBar?) {}
})

15. Switch

The Switch component is a toggle button that represents an on/off state, similar to a checkbox but more user-friendly:


val switch = Switch(this)
switch.setOnCheckedChangeListener { _, isChecked ->
    // Handle switch state change
}

16. RadioButton and RadioGroup

RadioButton is used when you want users to select one option from a set. RadioGroup is used to group multiple radio buttons:


val radioGroup = RadioGroup(this)
val radioButton1 = RadioButton(this)
val radioButton2 = RadioButton(this)
radioButton1.text = "Option 1"
radioButton2.text = "Option 2"
radioGroup.addView(radioButton1)
radioGroup.addView(radioButton2)
radioGroup.setOnCheckedChangeListener { _, checkedId ->
    // Handle radio button selection
}

17. CheckBox

The CheckBox component allows users to select multiple options from a set:


val checkBox = CheckBox(this)
checkBox.text = "I agree to the terms and conditions"
checkBox.setOnCheckedChangeListener { _, isChecked ->
    // Handle checkbox state change
}

18. Spinner

The Spinner is a dropdown list that allows users to select an item from a list of options:


val spinner = Spinner(this)
val adapter = ArrayAdapter(this, android.R.layout.simple_spinner_item, listOf("Item 1", "Item 2"))
spinner.adapter = adapter
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
    override fun onItemSelected(parent: AdapterView<*>, view: View?, position: Int, id: Long) {
        // Handle item selection
    }
    override fun onNothingSelected(parent: AdapterView<*>) {}
}

19. DatePicker

The DatePicker component allows users to select a date from a calendar view:


val datePicker = DatePicker(this)
datePicker.init(year, month, dayOfMonth) { _, year, monthOfYear, dayOfMonth ->
    // Handle date selection
}

20. TimePicker

The TimePicker is used to select a time. It can be displayed in either 24-hour or AM/PM mode:


val timePicker = TimePicker(this)
timePicker.setOnTimeChangedListener { _, hourOfDay, minute ->
    // Handle time selection
}

21. WebView

The WebView component is used to display web pages within your app. It can render HTML content and support JavaScript:


val webView = WebView(this)
webView.settings.javaScriptEnabled = true
webView.loadUrl("https://www.example.com")

These UI components form the building blocks of Android applications. By mastering these elements, you can create rich and interactive user interfaces that enhance the user experience. Kotlin's expressive syntax makes it easier to work with these components, allowing you to focus on building great apps.

Now answer the exercise about the content:

Which UI component in Android is used to display text to the user and can have its text properties manipulated using Kotlin?

You are right! Congratulations, now go to the next page

You missed! Try again.

Article image Handling User Input

Next page of the Free Ebook:

22Handling User Input

8 minutes

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text