Cách 1: Tạo mới một Activity bằng công cụ Android Studio
Kích phải chuột lên thư mục code java --> new --> Activity --> Empty Activity (có nhiều loại nhưng dùng cái empty cho đơn giản)
Màn hình thứ 2 xuất hiện, bạn thiết lập như ảnh dưới đây
Sau khi hoàn thành, bạn đã có thêm một activity mới trong ứng dụng.
Android Studio sẽ tạo cho bạn 2 file là ActivitySo2.java và file layout res/layouts/activity_so2.xml. Sau đó, Android Studio đăng ký activity trong file AndroidManifest.xml.
Trong layout của activity số 2 bạn tạo thêm 1 cái TextView để phân biệt lúc chạy nhé (cho vào giữa thẻ mở và thẻ đóng của layout nhé)
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Đây là activity số 2"
tools:ignore="MissingConstraints" />
Công việc còn lại bạn chỉ viết lệnh gọi Activity ra để dùng.
Trường hợp 1: Nếu ở bước tạo số 2 bạn có chọn Launcher Activity
thì sau khi bạn tạo xong chạy ứng dụng bạn sẽ thấy biểu tượng activity mới ở trong điện thoại và bấm vào chạy luôn, không cần viết code.
trong AndroidMainifest.xml sẽ tự có thêm khai báo activity như sau:
<activity android:name=".ActivitySo2">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Khi bạn chạy sẽ có biểu tượng của activity mới trong danh sách ứng dụng. Bạn có thể đặt label để nó hiển thị tên khác với tên ứng dụng mặc định. Tôi đặt thêm thuộc tính label cho activity này như sau:
android:label="Acvitity Số 2"
<activity android:name=".ActivitySo2" android:label="Acvitity Số 2">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Kết quả chạy
Trường hợp 2: Nếu bạn không chọn Launcher Activity ở bước số 2
thì bạn viết thêm code để gọi activity số 2 ra. Cách làm đơn giản như sau:
// trong hàm onCreate của MainActivity bạn viết thêm 2 lệnh này vào dưới dòng code setContentView...
Intent intent = new Intent(getBaseContext(), ActivitySo2.class);
startActivity(intent);
Kết quả chạy như sau:
Cách 2: Tự tạo code từng file
Bạn sẽ phải tạo từng file và viết code cho từng file riêng. Có 3 file bạn cần thao tác:
1. File code java
2. File layout
3. Đăng ký vào Mainifest
Bước 1: Kích phải chuột lên thư mục code java --> new --> Java Class --> nhập tên cho class: ActivitySo3 và bấm Enter.
Bước 2: Sửa code file java vừa tạo cho kế thừa lớp activity, ở đây tôi cho kế thừa theo lớp AppCompatActivity.
package com.spx.myapp01;
import androidx.appcompat.app.AppCompatActivity;
public class ActivitySo3 extends AppCompatActivity {
}
Bước 3: Sửa tiếp code file java bạn viết overwrite hàm onCreate của activity. Thao tác như trong ảnh dưới đây
Bước 4: Tạo 1 file layout cho activity này theo thứ tự như ảnh dưới
Bạn thêm vào trong code layout một TextView để phân biệt như sau:
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Đây là activity 3"
/>
Đây là code đầy đủ của layout vừa tạo
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Đây là activity 3"
/>
</LinearLayout>
Bước 5: Bạn setContentView cho activity để activity nhận file layout
Bạn cho dòng code sau vào trong hàm onCreate của activity vừa tạo
setContentView(R.layout.activity_so3);
Toàn bộ code java như sau
package com.spx.myapp01;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
public class ActivitySo3 extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_so3);
}
}
Bước 6: Bạn đăng ký activity vào AndroidMainifest.xml
- Trường hợp 1: Nếu muốn cho activity 3 là launcher thì bạn đăng ký theo kiểu dưới đây
<activity android:name=".ActivitySo3" android:label="Acvitity Số 3">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
- Trường hợp 2: Không muốn làm launcher thì bạn dùng code dưới đây
<activity android:name=".ActivitySo3"></activity>
với trường hợp 2 thì code ít hơn nhiều.
trong ví dụ này tôi sẽ làm demo bằng trường hợp 1, tạo launcher.
Kết quả chạy như sau:
Vậy là bạn đã biết cách tạo activity rồi nhé.