0

我有两个按钮阵列。如何检查某个单击的按钮是否在数组中?我试过这个,但没有奏效:

private static final int[] idArrayA = {R.id.bA1, R.id.bA2, R.id.bA3, R.id.bA4, R.id.bA5, R.id.bA6, R.id.bA7, R.id.bA8};
private static final int[] idArrayB = {R.id.bB1, R.id.bB2, R.id.bB3, R.id.bB4, R.id.bB5, R.id.bB6, R.id.bB7, R.id.bB8};

final OnClickListener clickListenerA = new OnClickListener(){


        public void onClick(View v) {
               if (Arrays.asList(idArrayA).contains(v.getId())) {

                   Button button = (Button) v;
                   button.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0x003333));  

               }
        }
       };
4

1 回答 1

1

Arrays.asList(idArrayA)将产生List<int[]>而不是List<Integer>因此产生不好的结果。
通过简单地遍历它并将其元素添加到新的 List 从您的数组构造 List :

List<Integer> arrayAsList = new ArrayList<Integer>(idArrayA.length); // List with initial capacity
for (int i : idArrayA) {
  arrayAsList.add(i);
}

将 idArrayA 声明为private static final Integer[].

于 2013-03-29T13:24:45.270 回答