Các thành phần tương tác trong giao diện của ứng dụng – UI Controls

Trong lập trình android  nó cung cấp một loạt các trình đối tượng giúp bạn có thể sử dụng trong giao diện người dùng ứng dụng, có thể kể ra 1 số thành phần như Buttons, Text Field , Check box, Toggle Buttons và còn nhiều thành phần khác nữa. Các thành phần tương tác trong giao diện của ứng dụng đó gọi tắt là UI Controls.

Các thành phần tương tác trong giao diện của ứng dụng - UI Controls
Các thành phần tương tác trong giao diện của ứng dụng – UI Controls

Thành phần chính của giao diện

Thành phần chính của một giao diện được gọi là View, một View là một đối tượng hiển thị một thứ gì đó lên màn hình, cái mà người dùng có thể tương tác và một ViewGroup là một đốt tượng chứa các đối tượng View và các đối tượng ViewGroup khác để xác định Layout của một giao diện.

Bạn xác định layout của bạn trong tập tin XML,  file xml này cung cấp một cấu trúc mà có thể dễ dàng đọc được, tương tự như HTML. Như ví dụ trong hình trên có nội dung như sau: (vì trong ví dụ trên mình sử dụng RelativeLayout nên code sinh ra hơi nhiều)

<?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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="hidev4u.com.uicontrols.MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:text="UI Controls!"
        android:textIsSelectable="false"
        android:textSize="30dp"
        android:singleLine="true" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/textView"
        android:layout_marginTop="23dp"
        android:text="New Button" />

    <RadioGroup
        android:id="@+id/radioGroup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/button"
        android:layout_marginEnd="42dp"
        android:layout_marginRight="42dp">

        <RadioButton
            android:id="@+id/radioButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="New RadioButton" />

        <RadioButton
            android:id="@+id/radioButton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New RadioButton" />
    </RadioGroup>

    <CheckBox
        android:id="@+id/checkBox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/radioGroup"
        android:layout_alignStart="@+id/radioGroup"
        android:layout_below="@+id/radioGroup"
        android:layout_marginTop="35dp"
        android:checked="true"
        android:text="New CheckBox" />

    <CheckBox
        android:id="@+id/checkBox2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/checkBox"
        android:layout_alignStart="@+id/checkBox"
        android:layout_below="@+id/checkBox"
        android:text="New CheckBox" />

    <Switch
        android:id="@+id/switch1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/toggleButton2"
        android:layout_alignEnd="@+id/checkBox2"
        android:layout_alignRight="@+id/checkBox2"
        android:checked="true"
        android:text="New Switch" />

    <ToggleButton
        android:id="@+id/toggleButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/checkBox2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:checked="true"
        android:text="New ToggleButton" />

    <ToggleButton
        android:id="@+id/toggleButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_centerVertical="true"
        android:text="New ToggleButton" />

    <Switch
        android:id="@+id/switch2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/switch1"
        android:layout_alignStart="@+id/switch1"
        android:layout_below="@+id/switch1"
        android:text="New Switch" />

    <EditText
        android:id="@+id/editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignEnd="@+id/button"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignRight="@+id/button"
        android:layout_below="@+id/radioGroup"
        android:text="UI Controls"
        android:focusable="true" />

    <SeekBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/seekBar"
        android:layout_below="@+id/switch2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="30dp"
         />

    <RatingBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/ratingBar"
        android:layout_below="@+id/seekBar"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="30dp" />

</RelativeLayout>

UI Controls trong Android

Android cung cấp khá nhiều các thành phần giao diện nhằm giúp lập trình viên xây dựng giao diện đồ họa cho ứng dụng của bạn đẹp hơn, mình đã liệt kê ra một số thành phần dưới đây:

  1. TextView : Hiển thị chuỗi lên màn hình.
  2. EditText : Là lớp con của TextView, người dùng có thể chỉnh sửa được chuỗi.
  3. Button : Một nút bấm mà người dùng có thể bấm giữ (press), bấm (click).
  4. ImageButton : Một nút bấm có hình ảnh.
  5. CheckBox : Cho phép người dùng bật/tắt một lựa chọn nào đó.Bạn có thể dùng UI Control này cho các lựa chọn có thể được chọn cùng nhau.
  6. RadioButton :UI Control này có 2 trạng thái: hoặc là bật, hoặc là tắt.
  7. RadioGroup : Một nhóm nhiều RadioButton.
  8. TimePicker : Cho phép người dùng chọn thời gian trong ngày, hoặc là dạng 24 giờ, hoặc là dạng AM/PM.
  9. DatePicker : Cho phép người dùng chọn ngày.

Tạo một UI Control mới

Input Control là những thành phần tương tác trong  giao diện của ứng dụng của bạn. Một đối tượng View chỉ có thể có một ID duy nhất để nhận dạng nó. Cú pháp của một ID bên trong thẻ XML là:

android:id=”@+id/my_id”

Để tạo một UI Control/View/Widget bạn phải định nghĩa View/Widget trong tập tin layout và gán cho nó ID:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent"
   android:orientation="vertical" >
   
   <TextView android:id="@+id/my_id"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="UI Controls" />
</LinearLayout>

Cuối cùng tạo một Instance của đối tượng Control đó và truy xuất gọi nó từ layout ra xem dòng code bên dưới:

TextView myText = (TextView) findViewById(R.id.my_id);

Lời kết

Mong là qua bài viết này bạn có thể hiểu rõ hơn về các thành phần tương tác trong giao diện của ứng dụng android – Android UI Controls. Trong những loạt bài sau chúng ta sẽ bắt đầu đi sâu hơn về lập trình android, mình sẽ hướng dẫn các bạn học lập trình android qua ví dụ cụ thể và mình sẽ giải thích những vấn đề có trong ví dụ đó. Trong quá trình tìm hiểu nếu bạn gặp bất kỳ lỗi nào hay có bất kỳ góp ý hay chia sẻ gì, mong bạn có thể để lại comment bên dưới hoặc gửi mail về [email protected]. Xin cảm ơn!!

Gom Marker trong Android với Google Maps Android API – Google Maps Android Marker Clustering Utility Sử dụng SwipeRefreshLayout trong ứng dụng Android Hướng dẫn tạo Material Dialog Bottom Sheet Android Tạo context menu trong Android – ActionBar ActionMode.CallBack Example Retrofit và Volley thư viện nào tốt hơn Hướng dẫn sử dụng thư viện Volley trong Android Tạo Web Service bằng PHP và MYSQL cho ứng dụng di động – Part 2 Tạo Web Service bằng PHP và MYSQL cho ứng dụng di động – Part 1 Hàm chuyển đổi Timestamp thành Datetime trong Android và JavaScript Design Patterns là gì? Tạo Project Android theo mẫu Design Patterns(Part 2)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.