【问题标题】:Add a new Constructor to Custom View android添加一个新的构造函数到自定义视图android
【发布时间】:2015-10-26 12:14:06
【问题描述】:

我想在我的自定义视图中添加新的构造函数来获取参数。这是我的情况:

另一个类中的变量:

A<T> customView;

“A”自定义视图类示例:

public class A<T extends B> extends ViewGroup {

     private Class<T> requestClass;
}

如何在视图初始化时获取 requestClass?

【问题讨论】:

    标签: android generics constructor custom-view


    【解决方案1】:

    您可以使用静态方法而不是构造函数。

    public class A<T extends B> extends ViewGroup {
    
         private Class<T> requestClass;
    
         public static <T extends B> A<T> newInstance(Class<T> requestClass) {
             A<T> instance = new A<>();
             instance.requestClass = requestClass;
             return instance;
         }
    
         public A(){}
    }
    

    在你的另一个班级:

    A<BImpl> customView = A.newInstance(BImpl.class);
    

    【讨论】:

    • 这是一个可能的解决方案。但是,我在 xml 中使用这个视图,所以我使用 findViewById 来获取它。
    • 使 A 扩展 Fragment 并使用 getSupportFragmentManager().beginTransaction().add 添加到您的布局中,而不是使用 findViewById 获取它。
    • ViewGroup 类中不能有默认的无参数构造函数
    猜你喜欢
    • 2011-02-22
    • 2011-10-21
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多