您好,登錄后才能下訂單哦!
對于幾個相應控件習慣用二分法定位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());
之前一直沒問題,直到今天調了下布局控件的上下順序,btn3和btn4移到上方,然后再測試就一直返回 -1 了.很郁悶.看R文件發現
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 型數組,以獲得指定的值。必須在進行此調用之前對數組進行排序(通過 sort(int[]) 方法)。如果沒有對數組進行排序,則結果是不確定的。如果數組包含多個帶有指定值的元素,則無法保證找到的是哪一個。
試了下
Arrays.sort(btnIds);
點擊 btn3返回0,按大小給排序了.
好吧,只能改一下別的方法了...
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。