[Học Android] Hướng dẫn sử dụng Annotation để khai báo Layout
![[Học Android] Hướng dẫn sử dụng Annotation để khai báo Layout](https://webnulled.net/wp-content/uploads/2022/02/android-huong-dan-su-dung-annotation-de-khai-bao-layout_6202b129449ac.jpeg)
Trong bài viết này mình sẽ hướng dẫn các bạn cách để khai báo layout một cách đơn giản, nhanh chóng bằng cả Java và Kotlin, thay thế cho việc setContentView trong hàm onCreate()
Làm sao để khai báo layout một cách đơn giản, nhanh chóng thế này
Với Java:
@LayoutId(R.layout.activity_main)
public class MainActivity extends BaseActivity {
}
hay Kotlin:
@LayoutId(R.layout.activity_main)
class MainActivity : BaseActivity() {
}
Đơn giản chỉ gồm 2 bước như sau:
1. Khởi tạo annotation
Java:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface LayoutId { int value();}
Kotlin:
@Target(AnnotationTarget.CLASS, AnnotationTarget.FILE)
@Retention(AnnotationRetention.RUNTIME)
annotation class LayoutId(val value: Int)
2. Định nghĩa annotation ở BaseActivity
Java:
public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LayoutId layoutId = getClass().getAnnotation(LayoutId.class);
if (layoutId != null) {
int contentViewId = layoutId.value();
setContentView(contentViewId);
}
}
}
Kotlin:
abstract class BaseActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val layoutId = javaClass.getAnnotation(LayoutId::class.java)
val contentViewId = layoutId?.value
setContentView(contentViewId!!)
}
}
Thế là xong! Cám ơn bạn đã đọc bài viết.
Chào thân ái và quyết thắng!
Theo:
https://viblo.asia