Java 修正背景图像比较

Java 修正背景图像比较,java,android,Java,Android,我知道聪明的人不喜欢我的小问题,但我正在努力学习 一、 I’’我正在尝试制作一个双人游戏我一直在我的应用程序中使用int,但这个游戏需要一种不同的方法我用int创建了双人游戏,但代码混乱,按两次相同的按钮将删除双人游戏,如下所示我一直在尝试使用标签代码看起来都很干净,没有错误 public class MainActivity extends Activity { //added Tag here for the if (pic2.getTag()==(beck)); Tag beck;

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

一、 I’’我正在尝试制作一个双人游戏我一直在我的应用程序中使用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); 
    }
    }});    
    }}
自从我的原始帖子开始,我就一直在尝试如何做。我展示了两个按钮的代码。我想做的就是在点击第二个按钮后进行比较并使其不可见

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); }
这会更改图像,但当第二个图像单击时,按钮不会消失。如果可能,尝试不使用ints

这一行用逗号表示

 if (pic1.getTag()==(pic2.getTag()))
 if (pic1.getTag()==(pic2.getTag()));
两个按钮的效果都会在点击其中一个按钮时消失,害怕移动到else if lol 如果对图像进行比较(如果为false,例如 如果没有匹配项,请移除按钮标签并将所有剩余图像重置为默认图像,就像我打开所有24个按钮时需要重置方法一样
i、 m在if语句末尾找到分号与没有任何人可以指出正确的方法何时和何时不使用分号有不同的效果

使用标记保存图像id:

pic1.setTag(R.drawable.becks);
pic2.setTag(R.drawable.becks);
然后,您可以通过在已单击的按钮上调用
getTag()
来检查和比较这些选项:

public boolean isMatch(View x, View y) {
  return x.getTag() == y.getTag();
}

为什么不设置与视图背景相对应的标记呢。然后检查它们是否相等。按照上面使用的方法,您将ImageButton与整数进行比较。1。为什么不接受我的回答!?这仍然是正确的。2.不要删除你原来的帖子!人们不知道第一个问题是什么。不要编辑我的答案!它将被拒绝4。如果你比较整数、字符串或其他任何东西,这都没关系!你首先需要了解你实际上在做什么。5.你的编辑完全无法理解!6.看看我原来的答案。同样,这仍然是一条路要走。这个网站是针对特定问题的。你现在的问题远远不止这些。事实上,我已经给了你所有你需要的。我试着在编辑中把它弄得更清楚(但没有评论你的代码质量)。这很简单,试着去理解,因为这真的是最基本的。我已经提前道歉了,我们都必须从一个特别的地方开始,我试着整理一下,是的,但你必须付出最小的努力。您现在遇到的问题与您关于如何比较两个图像按钮的背景可绘制性的问题无关。我向您保证,对于这个特定问题,您需要的一切都在我的代码示例中。剩下的就是学习编码,这是一个乞丐网站,我试着编码,但我只是用网络做研究,它没有太多的帮助代码总是与summit交互,否则我喜欢简单地学习一行代码,然后自己实现,你的代码非常有用。我用你展示的标签更改了图像,我很高兴这样做如果可以的话,我能比较一下吗?如果pic1.int==pic2.int{}我不知道写得是否正确,但如果这是可能的话,我能做到吗???再次为混乱感到抱歉,我将改进'R.drawable.becks'是您的drawable的ID,这是一个int。您不能更改它。您所要做的就是使用此值为ImageButtons添加标记(!),然后使用标记比较两个按钮。您仍然需要调用“setBackgroundResource()”。因此,在“setTag(R.drawable.becks)”之后,您所要做的就是“if(pic1.getTag()==R.drawable.becks)”,而不仅仅是使用“pic1==R.drawable.becks”。就这样,我不能再帮你了。坚持下去,你会成功的。如果你得到了,请把这个答案标记为已被接受,这样就不再是一个悬而未决的问题了。