anko小問題

最近也在跟風學習kotlin,用來寫android覺得十分好用
本來用來布局界面的xml可以用kotlinankoDSL代替,讓人耳目一新啊蔫敲,再也不用在xml里面掙扎了雖然用xml也挺簡單的
但是在給EditText上監(jiān)聽的時候(addTextChangeListener)發(fā)現(xiàn)了一個問題。
一般像java一樣的寫法烧给,是如此如此這般的

addTextChangedListener(object : TextWatcher{
                override fun afterTextChanged(s: Editable?) {
                    throw UnsupportedOperationException()
                }

                override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
                    throw UnsupportedOperationException()
                }

                override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
                    throw UnsupportedOperationException()
                }
            })

現(xiàn)在用了anko燕偶,像這種多個方法的接口,我們不用全部都寫础嫡,想用哪個就寫哪個就行了

textChangedListener { 
                beforeTextChanged { charSequence, i, i, i ->  }
            }

注意指么,后面的參數(shù)是IDE自動給我們生成的,像這樣三個i肯定是通不過編譯的榴鼎,redeclaration伯诬,重復申明的錯誤,只要改成不同的名字就行了巫财。

我發(fā)現(xiàn)的問題是這個方法afterTextChanged { }盗似,照理來說應該是有個Editable的參數(shù)的,自動生成的代碼是不帶這個參數(shù)的平项,像我這種重度依賴IDE自動生成代碼的人來說赫舒,少了個參數(shù)你讓我還怎么玩啊這怎么監(jiān)聽在EditText內容變化之后的內容呢。

于是就是網上找啊找啊闽瓢,Github上的Anko主頁啊接癌,大家對它的翻譯的文章啊,反正都沒有關于EditText的這個監(jiān)聽扣讼。缺猛。。奇怪的是椭符,Github上的demo上面明明是一個verticalLayout里面有ButtonEditText荔燎,然后緊接著介紹listener的時候,接口里面單個方法用的是button的销钝,多個接口竟然是SeekBarOnSeekBarChangeListener這個接口有咨,真是不按常理出牌啊,哎蒸健,簡單的介紹下EditTextTextWatcher接口不好嗎座享,可能是太簡單了?難道大家都沒疑惑纵装?還是我太蠢了征讲,也許是吧

沒辦法只能自己搗鼓搗鼓,接著看接口橡娄,這個參數(shù)簽名s:Editable?嗯诗箍,可能是空的,是不是只有一個參數(shù)挽唉,切可能為空的時候滤祖,它就懶的寫了啊筷狼,要寫自己寫去吧。那我就自己寫吧

  afterTextChanged { s: Editable? ->  }

就寫成這樣吧匠童,竟然可以了埂材,難道真的是單個參數(shù),可為空的情況下傳不傳參數(shù)都一樣汤求。
查查其他的listener吧俏险,啊,就是這樣的扬绪。竖独。簡單的onClickListener()

onClick{ }

也是這樣的,當我們需要它的參數(shù)的時候可以自己申明挤牛,或者不寫也沒什么關系莹痢。

2016年4月27日


其實都怪自己沒好好看文檔,仔細閱讀之后墓赴,人家的文檔寫的很清楚:

一個lambda表達式通過參數(shù)的形式被定義在箭頭的左邊(被圓括號包圍)竞膳,然后在箭頭的右邊返回結果值。在這個例子中诫硕,我們接收一個View坦辟,然后返回一個Unit(沒有東西)。所以根據(jù)這種思想痘括,我們可以把前面的代碼簡化成這樣:

view.setOnClickListener({ view -> toast("Click")})

當我們定義了一個方法长窄,我們必須使用大括號包圍滔吠,然后在箭頭的左邊指定參數(shù)纲菌,在箭頭的右邊返回函數(shù)執(zhí)行的結果。如果左邊的參數(shù)沒有使用到疮绷,我們甚至可以省略左邊的參數(shù):

view.setOnClickListener({ toast("Click") })

如果這個函數(shù)的最后一個參數(shù)是一個函數(shù)翰舌,我們可以把這個函數(shù)移動到圓括號外面:

view.setOnClickListener() { toast("Click") }

并且,最后冬骚,如果這個函數(shù)只有一個參數(shù)椅贱,我們可以省略這個圓括號:

view.setOnClickListener { toast("Click") }

2016年5月6日

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市只冻,隨后出現(xiàn)的幾起案子庇麦,更是在濱河造成了極大的恐慌,老刑警劉巖喜德,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件山橄,死亡現(xiàn)場離奇詭異,居然都是意外死亡舍悯,警方通過查閱死者的電腦和手機航棱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門睡雇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人饮醇,你說我怎么就攤上這事它抱。” “怎么了朴艰?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵观蓄,是天一觀的道長。 經常有香客問我祠墅,道長蜘腌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任饵隙,我火速辦了婚禮撮珠,結果婚禮上,老公的妹妹穿的比我還像新娘金矛。我一直安慰自己芯急,他們只是感情好,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布驶俊。 她就那樣靜靜地躺著娶耍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪饼酿。 梳的紋絲不亂的頭發(fā)上榕酒,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音故俐,去河邊找鬼想鹰。 笑死,一個胖子當著我的面吹牛药版,可吹牛的內容都是我干的辑舷。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼槽片,長吁一口氣:“原來是場噩夢啊……” “哼何缓!你這毒婦竟也來了?” 一聲冷哼從身側響起还栓,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤碌廓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后剩盒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谷婆,經...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了波材。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片股淡。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖廷区,靈堂內的尸體忽然破棺而出唯灵,到底是詐尸還是另有隱情,我是刑警寧澤隙轻,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布埠帕,位于F島的核電站,受9級特大地震影響玖绿,放射性物質發(fā)生泄漏敛瓷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一斑匪、第九天 我趴在偏房一處隱蔽的房頂上張望呐籽。 院中可真熱鬧,春花似錦蚀瘸、人聲如沸狡蝶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贪惹。三九已至,卻和暖如春寂嘉,著一層夾襖步出監(jiān)牢的瞬間奏瞬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工泉孩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留硼端,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓棵譬,卻偏偏與公主長得像显蝌,于是被迫代替她去往敵國和親预伺。 傳聞我的和親對象是個殘疾皇子订咸,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內容