對于幾個相應控件習慣用二分法定位index,這樣最省事了
private static final int btnIds[] = {R.id.btn0 ,R.id.btn1 ,R.id.btn2 ,R.id.btn3 ,R.id.btn4}; int index = Arrays.binarySearch(btnIds, v.getId());
之前一直沒問題,直到今天調(diào)了下布局控件的上下順序,btn3和btn4移到上方,然后再測試就一直返回 -1 了.很郁悶.看R文件發(fā)現(xiàn)
public static final int btn0=0x7f060071; public static final int btn1=0x7f060072; public static final int btn2=0x7f060073; public static final int btn3=0x7f06006f; public static final int btn4=0x7f060070;
btnIds不是按大小排序了.看到API里有一句
使用二分搜索法來搜索指定的 int 型數(shù)組,以獲得指定的值。必須在進行此調(diào)用之前對數(shù)組進行排序(通過 sort(int[]) 方法)。如果沒有對數(shù)組進行排序,則結果是不確定的。如果數(shù)組包含多個帶有指定值的元素,則無法保證找到的是哪一個。
試了下
Arrays.sort(btnIds);
點擊 btn3返回0,按大小給排序了.
好吧,只能改一下別的方法了...
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。