简体   繁体   English

如何检查按钮是否在按钮数组中?

[英]How to check if a button is in a array of buttons?

I have two arrays of buttons. 我有两个按钮阵列。 How to check if some clicked button is in an array? 如何检查某个单击的按钮是否在数组中? I tried this, but it didn't work: 我试过了,但是没有用:

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));  

               }
        }
       };

Arrays.asList(idArrayA) will produce List<int[]> instead of List<Integer> hence bad results. Arrays.asList(idArrayA)将产生List<int[]>而不是List<Integer>因此结果不佳。
Construct List from your array by simply iterating through it and adding its elements to new List : 通过简单地遍历数组并将其元素添加到新List来从数组构造List:

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

or declare idArrayA as private static final Integer[] . 或将 idArrayA声明为private static final Integer[]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM