每次我在上次添加的编辑文本中写东西时如何添加新的编辑文本 (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