Java 记忆游戏卡翻转问题

Java 记忆游戏卡翻转问题,java,android,eclipse,handler,Java,Android,Eclipse,Handler,我正在做一个简单的记忆游戏,你基本上会匹配相同的牌。如果两张卡都不匹配,我希望这些卡能够反向翻转。翻转代码如下所示: mT1.unselect(); mT2.unselect(); 当我把它放在else语句中时,卡会立即倒转,所以我使用了一个处理程序来减慢速度 Handler handler = new Handler(); handler.postDelayed(new Runnable() { public

我正在做一个简单的记忆游戏,你基本上会匹配相同的牌。如果两张卡都不匹配,我希望这些卡能够反向翻转。翻转代码如下所示:

 mT1.unselect();
 mT2.unselect();
当我把它放在else语句中时,卡会立即倒转,所以我使用了一个处理程序来减慢速度

Handler handler = new Handler(); 
                handler.postDelayed(new Runnable() { 
                     public void run() { 
                         mT1.unselect();
                         mT2.unselect();
                         playSound( SOUND_FAILED );
                     } 
                }, 2000); 
但当我测试时,它不会倒转,而是在给定的时间后播放声音。有什么问题吗

完整代码:

   public void onPosition(int position)
{
    if (position == mLastPosition)
    {

        return;
    }
    mLastPosition = position;
    Tile tile = mList.get(position);
    tile.select();
    int sound = tile.mResId % mSounds.length;
    playSound(sound);

    switch (mSelectedCount)
    {
        case 0:
            mT1 = tile;
            break;

        case 1:
            mT2 = tile;
            if (mT1.getResId() == mT2.getResId())
            {
                mT1.setFound(true);
                mT2.setFound(true);
                mFoundCount += 2;
                playSound(SOUND_SUCCEED);
            }
            else
            {

                Handler handler = new Handler(); 
                handler.postDelayed(new Runnable() { 
                     public void run() { 
                         mT1.unselect();
                         mT2.unselect();
                         playSound( SOUND_FAILED );
                     } 
                }, 2000); 

            }
            break;

        case 2:
            if (mT1.getResId() != mT2.getResId())
            {

            }
            mSelectedCount = 0;
            mT1 = tile;
            break;
    }
    mSelectedCount++;
    mMoveCount++;
    updateView();
    checkComplete();
}

和你之前的问题一样,你仍然没有给我们提供足够的背景,但我会在黑暗中大胆尝试-也许你需要打电话:

updateView();
Runnable
run()
方法中


如果你发布你的
updateView()
方法和更多关于它如何工作的上下文,如果这个猜测不能解决问题,我们可能会提供更多帮助。

你的函数mT1.unselect()和mT2.unselect()中可能存在重复的问题。向您提及这些函数。很抱歉,我没有理解。取消选择方法的代码?私有静态最终字符串ATTR_SELECTED=“SELECTED”;mSelected=object.getBoolean(ATTR_SELECTED);public void unselect(){mSelected=false;}它实际上起作用了!!非常感谢你,伙计!很抱歉,我没有两次提供足够的信息。很高兴这对你有用。这个问题比上一个问题要好,因为它提供了有关您尝试过的内容的更多信息,但是如果没有
unselect()
方法或
updateView()
的代码,很难猜测它的作用。只有在您对@Tarikhelian的回答中看到您的
unselect()
代码时,我才发现它没有更新UI,因此我猜您可能需要调用
updateView()
。希望您在不断开发和使用stackoverflow时,能够更好地了解与您的问题相关的信息。祝你好运