如何在 Kotlin 中使用 for 循环创建一个 editText 数组 - Android Studio
How to create an array of editTexts using for loop on Kotlin - Android Studio
在我们的 class 这周,我们的任务是创建一个简单的蛋糕烘焙应用程序。有两个编辑文本字段(wetText,dryText),用户可以在其中输入要添加到蛋糕中的成分。添加成分后单击一个混合按钮。在单击混合按钮时,我的目标是将添加的成分从 editText 列出到新的 textView(cakeText) 中,如下所示:
您添加了 --- 到击球手!
您添加了 --- 到击球手!
您添加了 --- 到击球手!
等等
我们应该使用 for 循环,我认为使用数组可能是正确的。 batterList 是我最近的一次尝试,所以我知道这是错误的,但我很想知道如何修复它!我已经为此工作了几个小时并且已经接近,但还不够接近。我希望这是有道理的。在这一点上,我的头脑不正常。任何建议将不胜感激!
val wetList = mutableListOf<String>()
val dryList = mutableListOf<String>()
val batterList = arrayOf(wetList)
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
fun wetButtonTapped(view: View) {
wetList.add(wetText.text.toString())
wetText.text.clear()
ingredientList.text = "You have ${wetList.count()} wet ingredients \n You have ${dryList.count()} dry indredients"
}
fun dryButtonTapped(view: View) {
dryList.add(dryText.text.toString())
dryText.text.clear()
ingredientList.text = "You have ${wetList.count()} wet ingredients \n You have ${dryList.count()} dry indredients"
}
fun mixButtonTapped(view: View) {
//cakeText.text = "You added ${wetList}"
for (item in batterList){
cakeText.text = "You added $item to the batter!"
}
您总是将预期列表的最后一行分配到 cakeText
。
试试这个:
cakeText.text = "${cakeText.text}\nYou added $item to the batter!"
这应该在正文中一项一项地添加。
此外,您可能需要将 batterList
从 val
更改为 var
并在 mixButtonTapped
上重新分配。所以最终代码应该是这样的:
var batterList = arrayOf(wetList)
...
fun mixButtonTapped(view: View) {
batterList = arrayOf(wetList)
for (item in batterList){
cakeText.text = "${cakeText.text}\nYou added $item to the batter!"
}
}
据我了解,您想在单个文本视图中显示所有添加的成分。因此,我不会声明一个有时无法管理的新数组,而是直接使用数组和 StringBuilder class 来构建整个字符串
fun mixButtonTapped(view: View) {
val stringBuilder = StringBuilder()
// here (wetList + dryList) will be merged into single list
for (item in (wetList + dryList))
stringBuilder.append("You added $item to the batter!\n")
cakeText.text = stringBuilder.toString()
}
所以我不会管理第三个数组,而是直接使用这两个数组并在我的任务完成时处理合并的数组,在这种情况下,它将在循环完成时处理。
在我们的 class 这周,我们的任务是创建一个简单的蛋糕烘焙应用程序。有两个编辑文本字段(wetText,dryText),用户可以在其中输入要添加到蛋糕中的成分。添加成分后单击一个混合按钮。在单击混合按钮时,我的目标是将添加的成分从 editText 列出到新的 textView(cakeText) 中,如下所示:
您添加了 --- 到击球手!
您添加了 --- 到击球手!
您添加了 --- 到击球手!
等等
我们应该使用 for 循环,我认为使用数组可能是正确的。 batterList 是我最近的一次尝试,所以我知道这是错误的,但我很想知道如何修复它!我已经为此工作了几个小时并且已经接近,但还不够接近。我希望这是有道理的。在这一点上,我的头脑不正常。任何建议将不胜感激!
val wetList = mutableListOf<String>()
val dryList = mutableListOf<String>()
val batterList = arrayOf(wetList)
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
fun wetButtonTapped(view: View) {
wetList.add(wetText.text.toString())
wetText.text.clear()
ingredientList.text = "You have ${wetList.count()} wet ingredients \n You have ${dryList.count()} dry indredients"
}
fun dryButtonTapped(view: View) {
dryList.add(dryText.text.toString())
dryText.text.clear()
ingredientList.text = "You have ${wetList.count()} wet ingredients \n You have ${dryList.count()} dry indredients"
}
fun mixButtonTapped(view: View) {
//cakeText.text = "You added ${wetList}"
for (item in batterList){
cakeText.text = "You added $item to the batter!"
}
您总是将预期列表的最后一行分配到 cakeText
。
试试这个:
cakeText.text = "${cakeText.text}\nYou added $item to the batter!"
这应该在正文中一项一项地添加。
此外,您可能需要将 batterList
从 val
更改为 var
并在 mixButtonTapped
上重新分配。所以最终代码应该是这样的:
var batterList = arrayOf(wetList)
...
fun mixButtonTapped(view: View) {
batterList = arrayOf(wetList)
for (item in batterList){
cakeText.text = "${cakeText.text}\nYou added $item to the batter!"
}
}
据我了解,您想在单个文本视图中显示所有添加的成分。因此,我不会声明一个有时无法管理的新数组,而是直接使用数组和 StringBuilder class 来构建整个字符串
fun mixButtonTapped(view: View) {
val stringBuilder = StringBuilder()
// here (wetList + dryList) will be merged into single list
for (item in (wetList + dryList))
stringBuilder.append("You added $item to the batter!\n")
cakeText.text = stringBuilder.toString()
}
所以我不会管理第三个数组,而是直接使用这两个数组并在我的任务完成时处理合并的数组,在这种情况下,它将在循环完成时处理。