如何获得最后一个单击的按钮player1或player2

时间:2018-11-17 18:43:02

标签: android kotlin

class MainActivity : AppCompatActivity() {
    enum class PLAYINGPLAYER {
        FIRST_PLAYER,
        SECOND_PLAYER
    }

    var playingplayer: PLAYINGPLAYER? = null
    var buttonClicked:ArrayList<Int> = ArrayList()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        playingplayer = PLAYINGPLAYER.FIRST_PLAYER
    }

    fun imgButtonClicked(v: View) {
        val btnselected = v as Button
        var optionNumber = 0

        when (btnselected.id) {
            R.id.btn1 -> optionNumber = 1
            R.id.btn2 -> optionNumber = 2
            R.id.btn3 -> optionNumber = 3
            R.id.btn4 -> optionNumber = 4
            R.id.btn5 -> optionNumber = 5
            R.id.btn6 -> optionNumber = 6
        }

        action(optionNumber, btnselected)
    }

    var button1Click = ArrayList<Button>()
    var button2Click = ArrayList<Button>()

    fun action(optionNumber: Int, btnselected: Button) {
        if (playingplayer == PLAYINGPLAYER.FIRST_PLAYER) {
            btnselected.setBackgroundColor(Color.GREEN)
            buttonClicked.add(optionNumber)
            btnselected.isEnabled = false
            button1Click.add(btnselected)
            playingplayer = PLAYINGPLAYER.SECOND_PLAYER
        }
        else if (playingplayer == PLAYINGPLAYER.SECOND_PLAYER) {
            btnselected.setBackgroundColor(Color.RED)
            buttonClicked.add(optionNumber)
            btnselected.isEnabled = false
            button2Click.add(btnselected)
            playingplayer = PLAYINGPLAYER.FIRST_PLAYER
        }
        imagebtnState()
    }

    fun imagebtnState() {
        val btnLast = buttonClicked.get(buttonClicked.size - 1)

        if (buttonClicked.contains(1) && buttonClicked.contains(2)) {
            if ( btnLast == ??? player1 ) {
                imgbBtnBackground.setImageResource(R.drawable.rca)
            }
        }
        else if (buttonClicked.contains(1) && buttonClicked.contains(2)) {
            if ( btnLast == ??? player2 ) {
                imgbBtnBackground.setImageResource(R.drawable.wac)
            }
        }
    }
}

我有两个球员和几个按钮。 Player1单击一个按钮,而player2单击另一个按钮。当玩家按下几个特定的​​?时,我想更改imageButton的背景。

在(btnLast = ???)中,我为了获得最后一次点击(buttonClicked.contains(1)&& buttonClicked.contains(2))而设置的是player1或player2。

1 个答案:

答案 0 :(得分:0)

假设您只会让两个玩家创建一个名为var playerOneLastClicked = true的布尔值,并且如果一个玩家的点击次数设置为true,否则如果两个玩家的点击次数设置为false

if (buttonClicked.contains(1) && buttonClicked.contains(2)) {
    if (playerOneLastClicked) {
        imgbBtnBackground.setImageResource(R.drawable.rca)
    } else {
        imgbBtnBackground.setImageResource(R.drawable.wac)
    }
}

由于imagebtnState()每次单击后都会被调用,因此与检查谁单击了arrayList中的最后一个按钮无关紧要,因为该方法会检查是否已单击指定的按钮

我想那就是你要的?