当我只选择一个选项 kotlin 时如何使用按钮

how can I use button when only I selected an option kotlin

这里我有四个选项,我想在 selected 一个选项之前玩家点击它时禁用提交 所以这意味着我只想在玩家 select 一个选项时启用提交 这是我的代码,它是一个测验应用程序

 setQuestion()

    tv_option_one.setOnClickListener(this)
    tv_option_two.setOnClickListener(this)
    tv_option_three.setOnClickListener(this)
    tv_option_four.setOnClickListener(this)
    btn_submit.setOnClickListener(this)
}



override fun onClick(v: View?) {

    when (v?.id) {


        R.id.tv_option_one -> {

            selectedOptionView(tv_option_one, 1)
        }

        R.id.tv_option_two -> {

            selectedOptionView(tv_option_two, 2)

        }

        R.id.tv_option_three -> {

            selectedOptionView(tv_option_three, 3)

        }

        R.id.tv_option_four -> {

            selectedOptionView(tv_option_four, 4)

        }

        R.id.btn_submit -> {



            if (mSelectedOptionPosition == 0) {

                mCurrentPosition++


                when {

                    mCurrentPosition <= mQuestionsList!!.size -> {

                        setQuestion()
                        tv_option_one.isClickable = true
                        tv_option_two.isClickable = true
                        tv_option_three.isClickable = true
                        tv_option_four.isClickable = true

// 这里我想我们应该做代码

                    }

   

您可以先在 onCreate() 中将按钮的可见性设置为 GONE,然后在每个 OnClickListener 中将其可见性更改为 VISIBLE,或者您可以将按钮 setEnabled(false) 最初也在 onCreate() 中,然后在每个 OnClickListener.

中将其设置为 setEnabled(true)

例如,

myButton.setVisibility(View.GONE)
R.id.tv_option_one -> myButton.setVisibility(View.VISIBLE)

myButton.setEnabled(false)
R.id.tv_option_one -> myButton.setEnabled(true)

您可以先禁用按钮,一旦用户选择任何选项,您就可以启用它。

在函数中添加下面一行setQuestion()

btn_submit.isEnabled = false

并且在 eachonClick() 函数中的那些选项中,您可以这样添加:

R.id.tv_option_one -> {
    btn_submit.isEnabled = true  
    selectedOptionView(tv_option_one, 1)
}

相反,如果您希望按钮完全消失并仅在用户选择一个选项时出现,您可以使用以下代码:

btn_submit.alpha = false

R.id.tv_option_one -> {
    btn_submit.alpha = true  
    selectedOptionView(tv_option_one, 1)
}