[Tip Android] Khai báo layout dễ dàng với Annotation
Bài đăng này đã không được cập nhật trong 5 năm
Làm sao để khai báo layout một cách đơn giản, nhanh chóng thế này
@LayoutId(R.layout.activity_main)
public class MainActivity extends BaseActivity {
}
or Kotlin
@LayoutId(R.layout.activity_main)
class MainActivity : BaseActivity() {
}
Cách làm: 1.Khởi tạo annotation
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface LayoutId { int value();}
or Kotlin
@Target(AnnotationTarget.CLASS, AnnotationTarget.FILE)
@Retention(AnnotationRetention.RUNTIME)
annotation class LayoutId(val value: Int)
- Định nghĩa annotation ở hàm Base
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);
        }
    }
}
or 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
All rights reserved
 
  
 