You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中在主Activity实例化需Context与AttributeSet的自定义类

解决方案

你如果是纯代码动态创建DrawingCanvas实例、不需要从XML布局加载预设属性的话,AttributeSet参数直接传null即可,写法如下:

DrawingCanvas drawingCanvas = new DrawingCanvas(this, null);

相关说明

  • AttributeSet本质是XML布局中声明的View属性的集合,只有系统从XML解析创建View时,才会自动生成对应实例传入构造函数。手动创建时没有需要解析的XML属性,传null是完全合法的用法,不会出现异常。
  • 实例创建完成后,你可以通过setLayoutParams()、setBackgroundColor()等方法手动设置View的布局参数和样式。
  • 如果你后续经常需要动态创建该自定义View,建议在DrawingCanvas类中补充重载构造函数,简化调用逻辑:
    // 适配纯代码创建场景的单参数构造
    public DrawingCanvas(Context context) {
        this(context, null);
    }
    
    补充后你就可以直接用DrawingCanvas drawingCanvas = new DrawingCanvas(this);的写法实例化,不需要再传入第二个参数。

内容的提问来源于stack exchange,提问作者Pauline

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:57:02