Android Studio - 在主要活动中定义需要上下文和属性的类
Posted
技术标签:
【中文标题】Android Studio - 在主要活动中定义需要上下文和属性的类【英文标题】:Android Studio - Define class that requires context and attributes in main activity 【发布时间】:2022-01-08 11:20:39 【问题描述】:我正在尝试在我的主要活动中使用自定义类。
DrawingCanvas drawingCanvas = new DrawingCanvas();
要定义类,我必须向它传递两个参数。这是我的构造函数。
public DrawingCanvas(Context context, @Nullable AttributeSet attrs)
super(context, attrs);
我知道我需要执行以下操作,但我不确定要为属性集传递什么。
DrawingCanvas drawingCanvas = new DrawingCanvas(this, );
【问题讨论】:
【参考方案1】:我假设 DrawingCanvas
是从 View
类或继承自它的类扩展而来的。
在这种情况下,有类似这样的构造函数很方便:
public DrawingCanvas(@NonNull Context context)
this(context, null);
public DrawingCanvas(@NonNull Context context, @Nullable AttributeSet attrs)
this(context, attrs, 0);
public DrawingCanvas(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr)
super(context, attrs, defStyleAttr);
// more code…
这样你就可以选择最合适的一个。如您所见,当没有AttributeSet
时,您可以通过null
。
现在你只需要这样做:
DrawingCanvas drawingCanvas = new DrawingCanvas(this);
【讨论】:
这解决了我的问题,谢谢! @Pauline 很高兴它成功了!attrs
和 defStyleAttr
通常在 XML 中定义,但如果自定义视图类没有任何自定义属性或样式/主题,那么它们并不是真正需要的。更多信息:developer.android.com/training/custom-views/…以上是关于Android Studio - 在主要活动中定义需要上下文和属性的类的主要内容,如果未能解决你的问题,请参考以下文章
如何在 android studio 中创建没有主要活动的应用程序?
在android studio中删除一个带有按钮的listview项目
如何在进入不同活动的情况下不删除 Android Studio 活动中的变量?
如何将自定义按钮应用于 Android Studio 中的活动?