[英]How to make a small change to Android source code, and incorporate into your own project
我想对Android标准的TimePicker
类进行一些更改。 具体来说,我正在尝试对其进行更改,以使其以15分钟为增量而不是1分钟为增量。
这篇文章帮助我按照应用程序的要求将分钟值的范围限制为{0,15,30,45}。 但是,正如我在后续评论中指出的那样,分钟微调器仍将前一分钟显示为当前值-1,将下一分钟显示为当前值+ 1,这将创建一个马虎的用户界面。
我查看了相关的Android源代码 ,看来我需要进行的更改非常简单。 但是,当我尝试将源代码复制到我的项目中时,遇到了与package
声明,在哪里找到Widget
,如何解析R.id
变量等有关的无数错误。
所以我的问题是:
从Android源代码对给定类进行少量更改并将其合并到您自己的项目中的最佳方法是什么?
就我而言,我只需要对TimePicker
和NumberPicker
进行一些小的更改,但是我不确定如何在我的项目中进行适当的设置。
感谢您的任何建议。
但是,当我尝试将源代码复制到项目中时,遇到了与包声明有关的无数错误
您的源文件的目录必须与程序包名称匹配。 并且由于您无法覆盖android.widget.TimePicker
,因此您将需要将该类移动到新的包中,或者给它一个新的名称。
在哪里找到小部件
这意味着您将TimePicker
复制到了一个程序包中。 很好,但是随后您需要为TimePicker
从其原始包中引用的类添加适当的import
语句。 或者,您需要将(重命名的) TimePicker
保留在android.widget
,将此包添加到您的项目中。 这是基本的Java。
如何解析R.id变量
如果TimePicker
依赖于不属于Android SDK的资源,则还需要将这些资源从AOSP复制到项目中。
从Android源代码对给定类进行少量更改并将其合并到您自己的项目中的最佳方法是什么?
恕我直言,这不能轻易地抽象地回答。 一般来说,您会执行上面列出的各种操作。
最好是将相关类子类化,并覆盖要更改的方法。
在Java中,您可以在子类中执行以下操作:
您可以编写一个隐式或使用关键字super调用超类的构造函数的子类构造函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.