Ở bài trước, Tui có hướng dẫn cách sử dụng Lombok trong Eclipse, bài này Tui tiếp tục sử dụng Lombok trong Android Studio để hướng dẫn các bạn cách tự động tạo các thành phần cho Class.
Ta có 3 bước chính để sử dụng được Lombok trong Android Studio.
Bước 1: Cài đặt Plugin Lombok
Bước 2: Chỉnh dependencies
Bước 3: Viết annotation cho Class.
Bây giờ ta đi vào chi tiết từng bước.
Để cài đặt Plug-in Lombok ta có vài chỗ để cài. Một là từ màn hình Welcome/chọn Configure/ chọn Plugins. Hai là từ Project đang mở sẵn ta vào File > Settings > Plugins
từ màn hình Plugins này ta tìm Lombok để cài.
Hình trên là từ màn hình Welcome ta chọn Configure
Sau đó chọn Plugins, màn hình Plugins hiển thị ra như bên dưới:
Mục tìm kiếm ta gõ “lombok”, sau đó nhìn bên góc phải có nút “Install”, ta nhấn Install để cài đặt:
Sau khi cài đặt xong ta thấy nút ‘”Installed” bị mờ đi như dưới đây:
Nhấn OK để hoàn tất quá trình cài Lombok Plugins
Bây giờ ta tạo một Project tên: TestLombokAndroid (xem các bài về Android Studio 2020 tại đây):
Từ Android Studio/ chọn Create New Project:
Mục Templates chọn Phone and Tablet.
Mục chi tiết bên phải chọn Empty Activity
Nhấn Next để tiếp tục:
Đặt tên dự án: TestLombokAndroid
Các package cho phù hợp
ngôn ngữ Java
Minimum SDK 26
Sau đó nhấn Finish để tạo Project.
Sau đó vào build.gradle (Module):
Bổ sung thư viện Lombok vào dependencies:
dependencies {
compileOnly ‘org.projectlombok:lombok:1.18.16’
annotationProcessor ‘org.projectlombok:lombok:1.18.16’
}
chi tiết:
Tùy vào thời điểm chọn version mà bạn nhập cho đúng, sau đó nhấn “Sync Now“
Tiếp theo ta tạo model: tranduythanh.com.model, và tạo một lớp SanPham có cấu trúc như dưới đây:
package tranduythanh.com.model;
public class SanPham {
private int ma;
private String ten;
private int soLuong;
private double donGia;
}
Ở trên, ta chỉ cần khai báo các thuộc tính mà thôi. Tiếp theo ta dùng các cú pháp của Lombok để setup cho lớp SanPham:
Mã lệnh:
package tranduythanh.com.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class SanPham {
private int ma;
private String ten;
private int soLuong;
private double donGia;
}
Ở trên ta thấy:
@AllArgsConstructor tự động tạo ra constructor đầy đủ đổi số.
@NoArgsConstructor tự động tạo ra constructor mặc định
@Data tự động tạo mọi getter/setter cho class
Bây giờ trong giao diện của Android, ta tiết kế 4 EditText, 1 Button để thử nghiệm class SanPham:
Code XML của activity_main.xml như sau:
Ta gán sự kiện cho Button “Thực hiện”:
chi tiết lệnh cho thucHienLombok:
package tranduythanh.com.testlombokandroid;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import tranduythanh.com.model.SanPham;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void thucHienLombok(View view) {
EditText edtMa=findViewById(R.id.edtMa);
EditText edtTen=findViewById(R.id.edtTen);
EditText edtSoLuong=findViewById(R.id.edtSoLuong);
EditText edtDonGia=findViewById(R.id.edtDonGia);
SanPham sp1=new SanPham(
Integer.parseInt(edtMa.getText().toString()),
edtTen.getText().toString(),
Integer.parseInt(edtSoLuong.getText().toString()),
Double.parseDouble(edtDonGia.getText().toString()));
Toast.makeText(this,sp1.toString(),Toast.LENGTH_LONG).show();
}
}
Chạy phần mềm lên ta có:
Ví dụ code ở trên dùng constructor đầy đủ đối số. Ta cũng có thể sử dụng Constructor mặc định và gọi các getter/setter:
SanPham sp1=new SanPham();
sp1.setMa(Integer.parseInt(edtMa.getText().toString()));
sp1.setTen(edtTen.getText().toString());
sp1.setSoLuong(Integer.parseInt(edtSoLuong.getText().toString()));
sp1.setDonGia(Double.parseDouble(edtDonGia.getText().toString()));
String info=”Mã=”+sp1.getMa()+”\n”+
“Tên=”+sp1.getTen()+”\n”+
“Số lượng=”+sp1.getSoLuong()+”\n”+
“Đơn giá=”+sp1.getDonGia();
Toast.makeText(this,info,Toast.LENGTH_LONG).show();
Chạy lên ta cũng có kết quả như mong muốn.
Đây là source code của bài này: https://www.mediafire.com/file/v8oqdvoqa0fmx70/TestLombokAndroid.rar/file
Chúc các bạn thành công!