1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Android 日历开发教程[五]

Android 日历开发教程[五]

时间:2019-04-30 13:37:02

相关推荐

Android 日历开发教程[五]

农历计算类

农历计算的算法,来源于:/ap/calendar/,具体的代码基本与来源处的 javascript 相同,差不多只是语言上的转换而已。

将这个类命名为:LunarCalendar,放到包 module 下,具体的代码就不列出了,这里帖一下 public 成员:

字段概要

构造器概要

方法概要

农历信息文本显示类

农历计算类返回的信息都是数字,需要转换成相应的字符,为此创建 DateFormatter 类,也同样保存到包 module 下。这个类不保存字符串,所有的字符串都放在资源文件 res/string.xml 中,各项定义成 string array。下面是这个类的代码片段:

private Resources resources;public DateFormatter(Resources resources) {this.resources = resources;}private String getArrayString(int resid, int index) {return resources.getStringArray(resid)[index];}public CharSequence getDayName(LunarCalendar lc) {StringBuilder result = new StringBuilder();int day = lc.getLunar(LunarCalendar.LUNAR_DAY);if (day < 11) {result.append(getArrayString(R.array.chinesePrefix, 0));result.append(getArrayString(R.array.chineseDigital, day));} else if (day < 20) {result.append(getArrayString(R.array.chinesePrefix, 1));result.append(getArrayString(R.array.chineseDigital, day - 10));} else if (day == 20) {result.append(getArrayString(R.array.chineseDigital, 2));result.append(getArrayString(R.array.chineseDigital, 10));} else if (day < 30) {result.append(getArrayString(R.array.chinesePrefix, 2));result.append(getArrayString(R.array.chineseDigital, day - 20));} else {result.append(getArrayString(R.array.chineseDigital, 3));result.append(getArrayString(R.array.chineseDigital, 10));}return result;}

代码比较简单,不作具体说明。

----------------------------

代码的重构刚完成,不过却有点问题,主要是 Cell 的背景,原来是用 selector -> shape,现在改为 shape -> color selector,得到焦点时不能更换背景色,待查。

代码的说明暂停,先放出 Project 的完整包文件下载:/detail/mostone/4955556

[待续]

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。