感悟 6.15
好久没写博客了,这次就说一说上次抄gayhub代码的惨痛经历。
事情背景是这样的:我们组的项目是做一个日记app,那当然日记编辑界面少不了了。觉得还挺有趣我就接下了这个任务,谁知道噩梦才刚刚开始……
事情经过:一开始我用了最简单的文本编辑框edit text,为了给输入文本添加效果,我去网上找了各种控件,最后实现了文字大小,背景,字体样式的设置。完成任务的我美滋滋,依然没有预料到接下来的事情。
空闲时候使用别的日记app找灵感(可以借鉴的地方),突然发现,窝c,人家的文本编辑器可以支持加粗斜体,下划线,字体颜色,字间距,行间距,吧啦吧啦,太高级了。回头看看我的,简直没眼看,居然只能针对所有文本设置格式,而且格式还那么少,low爆了。
不行,我也要做出像他们那样牛逼的文本编辑器,于是我向组长说明我需要一周的时间对原有的app做翻版,噩梦开始了。
一开始我一头雾水,不知道人家是怎么实现的,于是开始慢慢的百度。了解到这玩意儿叫富文本编辑器,我开始找各种实现方法。果不其然,网上大神好多,很容易我就找到了一个github上优秀的富文本编辑器(这次发现也开启了我的新世界,github真是个好地方),按照上面的使用指南,我一步一步敲代码,然后设计界面。终于快到周末了,整个富文本编辑器也抄的差不多了,心情很轻松,可以交差了。
就在我喝一口茶休息的时候,我发现,这个富文本编辑器,竟然!不支持!字体设置!在那一瞬间我懵了,心情欲哭无泪,然后我回到github上看它的使用说明,它在最后一行说了不支持字体!我……心情复杂。
但还是要硬着头皮跟组长说还需要一周的时间,上周的富文本编辑器不支持字体,这周需要换一个。组长很好,没有怪我,只是跟我说,抄代码之前要看清楚代码说明要看懂代码!
接下来的一周,我在新世界(github)上搜寻着富文本编辑器的项目,终于找到了另一个,这次我看准了说明,也看了效果,嗯,很好,确认过眼神,是我要找的代码。不过有一点比较奇怪,为什么没告诉我怎么用呢?正在挠头不知所措时,我看到了一个sample文件夹,好像这个里面是一个应用实例。突然开心,照着这个,我一定能实现它。
结果,一周后,我对组长说:“组长,我…没看懂它的代码,鼓捣到现在,项目代码已经是一团糟了”,组长依然没有怪我,只是我很愧疚,拉整个组的后腿。
我冷静的思考了一下,觉得不能在这棵树上吊死了,我决定了,自己实现富文本编辑器,不用别人的代码。
有了方向之后,慢慢又鼓起了干劲。通过百度我了解到了两种实现方法,一种是webview+java script,另外一种是 edittext+span。鉴于第一种方法中的两个知识点都没学过,而且第二种都是as原生的东西,所以我选用了第二种。
一周的时间实现那么多效果虽然紧张,但是在队友胡宇晨的帮助下,还是完成了85%。
结果!对接的时候!又出了问题!数据库方面希望我们给出html格式的文本,可是加span效果后的edittext内容类型是char sequence!知道这个问题的时候,我心痛的跟胡宇晨讲,看了又要推倒重做一遍了。数据库方面似乎是感觉到了我的绝望,跟我说,我们找一找能不能把char sequence类型跟html类型互转,实在不行,我们数据库看看能不能改储存方式。我心里一丝安慰,但丝毫没有轻松,因为数据类型基本上是改不了的(html格式有很多方便的地方),我只能寄希望于找到两种类型的转化方法。
那天晚上,回宿舍,我的心,冰凉。
我在电脑面前浏览着网上的方法,心里一直祈祷。
终于在12:00左右,我找到了,Html.tohtml(),我欣喜若狂的告诉了队友。太棒了,我不用重做了!第二天我找到了转化回来的方法。虽然还有一些问题在里面,但总归不用重做了。
噩梦结束,考试周开始,我放下了手里的任务,开始复习。
写在最后,
抄代码之前一定要看说明!
抄别人的代码一定要看懂代码或者知道怎么用!
自己写代码不一定比用别人的差!
当在多种选择面前做选择时,不要一个人决定,要听听队友的看法!