你如何扩展像Android.widget包中的DatePicker PagerAdapter这样的Android类?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你如何扩展像Android.widget包中的DatePicker PagerAdapter这样的Android类?相关的知识,希望对你有一定的参考价值。

我想从android.widget包中扩展DayPickerPagerAdapter模块。这可能吗?

我想要做的是创建我自己的DatePickerDialog(我还需要扩展),我可以突出显示多天,而不是只突出显示所选日期。

我是否只需要复制这些android类的源代码?如果是这样,那是合法的吗?

谢谢!

答案

是的,您可以通过在同一个包中创建新类来技术上扩展这些类(创建文件夹结构以匹配您正在扩展的包),这意味着您将创建如下内容:

/src/main/java/android/widget/CustomDayPickerPagerAdapter.java

...这将允许你扩展DayPickerPagerAdapter类,因为它是包私有的。

但是,这并不能保证你能够以你想要的方式成功地操作组件的内部,因为很多功能很可能是private,这意味着你运气不好。

当然,您也可以按照建议复制这些组件的源代码。这是完全合法的,因为整个Android项目都是开源的(Apache 2.0许可证)。这样做的缺点是必须定期检查来自上游的更新和错误修正,并且必须将它们重新集成到您的自定义组件中。

以上是关于你如何扩展像Android.widget包中的DatePicker PagerAdapter这样的Android类?的主要内容,如果未能解决你的问题,请参考以下文章

子线程中如何修改ui界面

你如何从 Laravel 的包中扩展视图?

Laravel:自定义或扩展通知 - 数据库模型

android.widget.LinearLayout 无法转换为 android.widget.TextView

Android Widget:Textview 在主页滚动时停止选取框

Android用户界面设计