作爲一個程序猿,寫的代碼出現bug這是一件無可厚非的事情。但有時候會碰見一種狀況,感受本身寫的代碼應該是完美的,但一到測試童鞋的那裏就出問題了。這裏的緣由有不少種,思考問題角度不一樣、操做流程不一樣、對業務理解不一樣都會致使這種狀況的發生。固然了,程序猿自己代碼邏輯不夠嚴謹也是一種狀況。
然而,有時候一些簡單的代碼邏輯也會出錯,這多是因爲所使用的編程語言自身的bug(或者說是缺陷吧)所致使。固然,不管怎樣歸根結底都是自身code能力不足的一種體現吧,因此這個系列的日誌總結了一些平常開發中遇到的一些bug.避免再次掉到這種坑裏去 html
平時開發中,需求變動是一件不可避免的事情,最無語仍是需求從A變成了B,而後又變回了A,經歷或數次這樣的折磨後,就開始學聰明,每次修改都是將以前寫的代碼註釋掉,萬一需求變回去了,省的重寫了。(也許有些童鞋會說爲何不一樣代碼版本管理,直接回退不就哦了,但現實開發中真正修改的有時候也就那麼幾行,或者一個參數而已)。 java
前日接到需求,要求將XX頁面內支付按鈕(本人作的是電商類應用開發)屏蔽,不可點擊。
讓一個按鈕不可點擊,這還不簡單,在佈局文件中加上下面這句就哦了,懶得去改java代碼了。 android
android:clickable=」false」
沒有自測,就讓測試去測,結果人家一測說按鈕仍是能夠點擊,當時的第一反應就是難以想象。本身運行了一遍,發現果然是Button的click事件依舊是有效的。而後在java代碼裏作了以下修改 編程
btn2.setClickable(false);
這樣寫以後,按鈕才真正的變爲不可點擊。 編程語言
至此,得出結論,要讓一個Button不可點擊在XML佈局文件設置其屬性是不生效的,應該在代碼中進行修改。使用其setClickable方法
固然,Android SDK中這種在佈局文件中設置屬性不生效的控件還有其餘的,只是不知其中的道理。 佈局
順便了解了一下,Button的enable屬性,這個enable爲false時,整個按鈕將爲置灰狀態,這樣也是能夠實現按鈕不可點擊的,只是從UI上看有點怪異。 測試
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"> <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="30dp" android:enabled="false" android:text="Button1" /> <Button android:id="@+id/button2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/button1" android:layout_marginTop="30dp" android:clickable="false" android:text="Button2" /> </RelativeLayout>
這種設置的UI效果以下 spa
好了,一個簡單問題,在此作一下記錄! 日誌