如何编写代码按下按钮时,不能再次选择

问题描述

我是使用 Kotlin 语言编程的初学者,如果您愿意,我需要您的帮助,因为我需要鼓励,我正在开发一个测试应用程序和多个选项,我需要一个代码(当您按下“确认”按钮时,您的答案无法修改或选择其他答案,您只能按转到按钮下一个问题)请帮助我,非常感谢

这是我创建的代码的文本

private var mCurrentPosition:Int = 1
private var mQuestionList: ArrayList<Question>? = null
private var mSelectedOptionPosition : Int = 0
private var mCorrectAnswers: Int = 0
private var mUserName: String? = null



override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_quiz_questions)
    mUserName = intent.getStringExtra(Constants.USER_NAME)

    mQuestionList = Constants.getQuestions()

    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)

}
private fun setQuestion(){

    val question = mQuestionList!![mCurrentPosition-1]

    defaultOptionsvew()

    if(mCurrentPosition ==mQuestionList!!.size){
        btn_submit.text = "end"
    }else{
        btn_submit.text = "submit"
    }

    progressBar.progress = mCurrentPosition
    tv_progress.text = "$mCurrentPosition"+ "/"  + progressBar.max

    tv_question.text = question!!.question
    iv_image.setimageResource(question.image)
    tv_option_one.text = question.optionOne
    tv_option_two.text = question.optionTow
    tv_option_three.text = question.optionThree
    tv_option_four.text = question.optionFour
}

private fun defaultOptionsvew(){
    val options = ArrayList<TextView>()
    options.add(0,tv_option_one)
    options.add(1,tv_option_two)
    options.add(2,tv_option_three)
    options.add(3,tv_option_four)

    for (option in options){
        option.setTextColor(Color.parseColor("#7A8089"))
        option.typeface = Typeface.DEFAULT
        option.background = ContextCompat.getDrawable(this,R.drawable.default_option_border_bg)
    }

}

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 <= mQuestionList!!.size -> {
                        setQuestion()
                    }else ->{
               val intent = Intent(this,ResultActivity::class.java)
                    intent.putExtra(Constants.USER_NAME,mUserName)
                    intent.putExtra(Constants.CORRECT_ANSWERS,mCorrectAnswers)
                    intent.putExtra(Constants.TOTAL_QUESTIONS,mQuestionList!!.size)
                    startActivity(intent)
                    finish()
                }
                }
            }else{
                val question = mQuestionList?.get(mCurrentPosition -1)
                if(question!!.correctAnswer !=mSelectedOptionPosition){
                    answerView(mSelectedOptionPosition,R.drawable.wrong_option_border_bg)
                }else{
                    mCorrectAnswers++
                }
                answerView(question.correctAnswer,R.drawable.correct_option_border_bg)

                if(mCurrentPosition == mQuestionList!!.size){
                    btn_submit.text = "end"
                }
                else{
                    btn_submit.text = "next"
                  

                }
                mSelectedOptionPosition = 0
            }


        }
    }

}
private fun answerView(answer: Int,drawableView: Int){
    when(answer){
        1->{
            tv_option_one.background = ContextCompat.getDrawable(this,drawableView)
        }
       2->{
            tv_option_two.background = ContextCompat.getDrawable(this,drawableView)
        }
        3->{
            tv_option_three.background = ContextCompat.getDrawable(this,drawableView)
        }
        4->{
            tv_option_four.background = ContextCompat.getDrawable(this,drawableView)
        }
    }
}

 private fun selectedOptionView(tv: TextView,selectedOptionNum: Int){

     defaultOptionsvew()
     mSelectedOptionPosition = selectedOptionNum
     tv.setTextColor(Color.parseColor("#363A43"))
     tv.setTypeface(tv.typeface,Typeface.BOLD)
     tv.background = ContextCompat.getDrawable(this,R.drawable.selected_option_border_bg)
 }

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...