每次我在上次添加的编辑文本中写东西时如何添加新的编辑文本 (Kotlin)
How can i add a new edit text everytime i write something in the last added edit text (Kotlin)
我希望用户可以列出他的爱好。我不知道这份清单有多长。所以我有一个线性布局,里面有一个编辑文本和一个按钮,他可以在线性布局中添加一个编辑文本,但我不喜欢用户每次想要添加一个爱好时都必须点击按钮,所以我想要那个当用户在上一个编辑文本中写了一些东西时,就会添加一个新的编辑文本。我的问题是我现在不知道如何跟踪编辑文本何时不再为空,以添加另一个编辑文本
要添加编辑文本,我有这个功能:
fun addet() {
val et_hobby = EditText(this)
et_hobby.textSize = 18f
et_hobby.hint = "your Hobbie"
et_hobby.minEms = 3
linearLayout.addView(et_hobby)
etarray.add(et_hobby)
}
我的想法是,当 etarry.last.isNotEmpty 为真时,我想触发此功能。我想我需要一个监听器,但我不知道是哪个。
你能帮帮我吗?
您可以使用以下侦听器在 EditText 中侦听文本更改:
etarry.last.addTextChangedListener(object :TextWatcher{
override fun afterTextChanged(s: Editable?) {
if(s.toString().trim().length > 0){
addIt();
}else{
//You can remove it if you want!
}
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
}
})
但是当你添加一个新的时,不要忘记从你的数组中的所有其他 EditTexts 中删除监听器,否则,每次你在任何 EditText 中写一些文本时你可能会得到一个新的 EditText 而不仅仅是最后一个。
编辑 1:
您还可以检查当前的 EditText 之后是否只有一个空的 EditText,否则,您将在每次在上一个 EditText
中写入一个字符时添加一个新的 EditText
我希望用户可以列出他的爱好。我不知道这份清单有多长。所以我有一个线性布局,里面有一个编辑文本和一个按钮,他可以在线性布局中添加一个编辑文本,但我不喜欢用户每次想要添加一个爱好时都必须点击按钮,所以我想要那个当用户在上一个编辑文本中写了一些东西时,就会添加一个新的编辑文本。我的问题是我现在不知道如何跟踪编辑文本何时不再为空,以添加另一个编辑文本
要添加编辑文本,我有这个功能:
fun addet() {
val et_hobby = EditText(this)
et_hobby.textSize = 18f
et_hobby.hint = "your Hobbie"
et_hobby.minEms = 3
linearLayout.addView(et_hobby)
etarray.add(et_hobby)
}
我的想法是,当 etarry.last.isNotEmpty 为真时,我想触发此功能。我想我需要一个监听器,但我不知道是哪个。
你能帮帮我吗?
您可以使用以下侦听器在 EditText 中侦听文本更改:
etarry.last.addTextChangedListener(object :TextWatcher{
override fun afterTextChanged(s: Editable?) {
if(s.toString().trim().length > 0){
addIt();
}else{
//You can remove it if you want!
}
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
}
})
但是当你添加一个新的时,不要忘记从你的数组中的所有其他 EditTexts 中删除监听器,否则,每次你在任何 EditText 中写一些文本时你可能会得到一个新的 EditText 而不仅仅是最后一个。
编辑 1:
您还可以检查当前的 EditText 之后是否只有一个空的 EditText,否则,您将在每次在上一个 EditText