问题描述
我是使用 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 (将#修改为@)