-1

我知道聪明的人不会喜欢我的小问题,但我正在努力学习

我,我正在尝试制作一个配对游戏,到目前为止我一直在我的应用程序上使用 int,但是这个游戏需要一种不同的方法,我用 int 创建了配对游戏,但代码混乱,而且按下相同按钮两次的地板将删除配对,如下所示我一直在尝试使用标签,代码看起来都很干净,没有错误

 public class MainActivity extends Activity {
//added Tag here for the if (pic2.getTag()==(beck)); 
 Tag beck;
 @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

final ImageButton pic1 = (ImageButton )     findViewById(R.id.imageButton1);         
final ImageButton pic2 = (ImageButton )     findViewById(R.id.imageButton2); 

     pic1.setOnClickListener(new View.OnClickListener()       { 
 public void onClick(View v) {  
     pic1.setBackgroundResource(R.drawable.becks);
     pic1.setTag(R.drawable.becks);
 if (pic2.getTag() == pic1.getTag()){            
     pic1.setVisibility(View.INVISIBLE);
     pic2.setVisibility(View.INVISIBLE);}     
    }});    

     pic2.setOnClickListener(new View.OnClickListener() {                            
 public void onClick(View v) {       
     pic2.setBackgroundResource(R.drawable.becks);
     pic2.setTag(R.drawable.becks);

     if (pic1.getTag() == pic2.getTag()){
    pic1.setVisibility(View.INVISIBLE);
     pic2.setVisibility(View.INVISIBLE); 
    }
    }});    
    }}

自从我的原始帖子以来,我就尝试过如何解决我显示的 2 个按钮的代码,我想要做的就是比较并在单击第二个按钮后使其不可见

if (pic1.getTag().equals(pic2.getTag())){
    pic1.setVisibility(View.INVISIBLE);
     pic2.setVisibility(View.INVISIBLE); }

.equals 使应用程序崩溃

     pic1.setOnClickListener(new View.OnClickListener()  {  
  public void onClick(View v) {  
     pic1.setBackgroundResource(R.drawable.becks);
     pic1.setTag(beck);
 if (pic2.getTag()==(beck));{            
     pic1.setVisibility(View.INVISIBLE);
     pic2.setVisibility(View.INVISIBLE);}     
     }});       

这适用于或不使用 semi 但单击任一按钮时两个按钮都会消失

if (pic1.getTag()==(pic2.getTag())){
    pic1.setVisibility(View.INVISIBLE);
     pic2.setVisibility(View.INVISIBLE); }

这会更改图像,但按钮不会在单击第二张图像时消失,如果可能的话尽量不使用整数

此行与逗号一起使用

 if (pic1.getTag()==(pic2.getTag()))
 if (pic1.getTag()==(pic2.getTag()));

两个按钮的效果在单击任一按钮时都会消失 如果大声笑会移动到其他按钮 如果这对图像比较为 false 也可以删除标签例如如果不匹配删除按钮标签并将所有剩余图像重置为默认图像当我把所有 24 个按钮都放在上面时,我需要一个重置方法

4

1 回答 1

1

使用标签保存您的图像 ID:

pic1.setTag(R.drawable.becks);
pic2.setTag(R.drawable.becks);

然后,您可以通过调用getTag()已单击的按钮来检查和比较它们:

public boolean isMatch(View x, View y) {
  return x.getTag() == y.getTag();
}
于 2013-10-08T15:24:27.027 回答