Извините за длинный пост! Я пытаюсь сделать карту памяти для запоминания, и я застрял с ней в течение недели
Вот массив
val sentenceArray = arrayOfNulls<String>(8)
sentenceArray[0] = ""
sentenceArray[1] = "Array 1 (1)"
sentenceArray[2] = "Array 2 (2)"
sentenceArray[3] = "Array 3 (3)"
sentenceArray[4] = "Array 4 (4)"
sentenceArray[5] = "Array 5 (5)"
Это код. Для генерации теста есть 2 счетчика (левый и правый). Если пользователь выбрал 1 для левого счетчика и 3 для правого счетчика, он будет отображать только массивы от 1 до 3 каждый раз, когда пользователь нажимает на textView
leftSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener
{
override fun onNothingSelected(parent: AdapterView<*>?) {}
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long)
{
//Stores value of the selected Left Spinner
val selectedLeftSpinner = leftSpinner.getItemAtPosition(position).toString()
rightSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener
{
override fun onNothingSelected(parent: AdapterView<*>?) {}
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long)
{
//Actions when buttonStart is clicked
buttonStart.setOnClickListener {
//Stores value of the selected Right Spinner
val selectedRightSpinner = rightSpinner.getItemAtPosition(position).toString()
//Stores selectedLeftSpinner value to firstSentence so that it can be used
var firstSentence = selectedLeftSpinner.toInt()
//Stores selectedRightSpinner value to lastSentence so that it can be used
val lastSentence = selectedRightSpinner.toInt()
//Displays (1)
textView.text = sentenceArray[firstSentence]?.takeLast(3)
//Waiting for an action on the TextView
textView.setOnClickListener {
//Displays (Array 1)
textView.text = sentenceArray[firstSentence]
//Waiting for an action on the TextView
textView.setOnClickListener {
while (firstSentence < lastSentence) {
//This while loop displays Array 1 to 5 each time a user clicks on textView
firstSentence++
textView.text = sentenceArray[firstSentence]
//Ends the test when it reaches the last array
if (firstSentence == lastSentence) {
buttonStart.text = "DONE"
}
break
}
}
}
}
}
}
}
}
Что я пытаюсь сделать: после того, как пользователь выбрал значение из левого счетчика (например, 1) и правого счетчика (например, 3), они нажимают кнопку Старт, чтобы запустить флэш-карту. TextView начинает отображать (1). Чтобы раскрыть ответ, они могли бы нажать на textView, а затем он отобразит «Массив 1». Затем они щелкнули бы на textView, и он отобразит (2) ... et c
Таким образом, поток должен быть таким, после нажатия на textView на каждом шаге
(1)
Array 1
(2)
Array 2
(3)
Arra3 3
DONE
С моим током, пока l oop
while (firstSentence < lastSentence) {
//This loop displays Array 1 to 5 each time a user clicks on textView
firstSentence++
textView.text = sentenceArray[firstSentence]
//Ends the test when it reaches the last aya
if (firstSentence == lastSentence) {
buttonStart.text = "DONE"
}
break
}
Это текущий поток
(1)
Массив 1
Массив 2
Массив 3
СОВЕРШЕНО
Я много чего пробовал, но не смог заставить его работать, и понятия не имею
Вот 2 разных кода, которые я пробовал, которые не работали. Это было в то время как l oop
textView.setOnClickListener {
if (textView.text == sentenceArray[firstSentence])
textView.text = sentenceArray[firstSentence]?.takeLast(3)
}
и этот код
if (firstSentence < lastSentence)
{
textView.setOnClickListener {
textView.text = sentenceArray[firstSentence]?.takeLast(3)
}
}
2 кода приводят к этому потоку
(1)
Array 1
Массив 2
(2)
СОВЕРШЕНО, когда предполагается, что он будет продолжать (3)