android - 如何在Android中为int Array设置标签

android - 如何在Android中为int Array设置标签,第1张

我正在学习Android并且不适合我的问题,但我很感激任何帮助

我试图制作记忆游戏,我有两个名为imgBack的数组是ImageView数组按钮和一个名为imgFace的int数组

我需要将setTag()设置为名为imgFace

的int数组

当我尝试将setTag()设置为int数组(imagesFace)是不可能的,因为它属于VIEW,如果我将imgFace的数组制作成ImageView数组,我不能将setImageResource()设置为cardImg(因为是必要的int)

我添加了一段代码

再次感谢您的回答

for (int i = 0; i < 12; i  ) {
            imgBack[i].setImageResource(R.drawable.icon);
            final int imagesFace = imgFace[position[i] - 1];
            final ImageView cardImg = imgBack[i];
            //cardImg.setTag(i);

            cardImg.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    cardImg.setImageResource(imagesFace);
                    ImageView cardThatWasClicked = (ImageView) v;
                    int cardId = (int) cardThatWasClicked.getTag();
                    counter  ;
                    if (counter % 2 == 0) {//b
                        cardB = cardId;
                        if (cardB == cardA) {
                            Toast.makeText(getBaseContext(), "match!", Toast.LENGTH_LONG).show();
                        } else {
                            Toast.makeText(getBaseContext(), "NOT match!", Toast.LENGTH_LONG).show();
                        }
                    } else {//a
                        if (cardA != -1) {
                            imgBack[cardA].setImageResource(R.drawable.icon);
                            imgBack[cardB].setImageResource(R.drawable.icon);
                        }
                        cardA = cardId;
                    }

                }
            });
        }

最佳答案:

1 个答案:

答案 0 :(得分:1)

你可以写:

cardImg.setTag(new Integer(i));

并得到它:

int i = (int) cardImg.getTag();

注意: setTag方法的输入参数类型为Object。在Java int中,float,...是原始类型,不扩展Java Object基类。但是IntegerFloat,...是扩展基类Object类的等效类。

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复