gpt4 book ai didi

android - Android Kotlin:不会为EditText触发onTextChanged

转载 作者:行者123 更新时间:2023-12-02 13:19:43 28 4
gpt4 key购买 nike

我正在创建一个侧面带有行号的EditText框。为了实现这一点,我在onTextChangedaddTextChangedListener方法中有代码,用于更新EditText的行号。但是由于某种原因,当我键入onTextChanged时,EditText事件似乎从未触发,因为未激活println语句。

下面是我的XML代码:

<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:rowCount="1"
android:columnCount="2">

<TextView
android:id="@+id/linenumber"
android:layout_width="30dp"
android:layout_height="200dp"
android:layout_row="0"
android:layout_column="0"
android:layout_columnSpan="1"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:background="@drawable/border_style"
android:gravity="center_horizontal"
android:text="1"
android:textSize="18dp"></TextView>

<EditText
android:id="@+id/textbox"
android:layout_width="0dp"
android:layout_height="200dp"
android:layout_row="0"
android:layout_column="1"
android:layout_columnSpan="1"
android:layout_columnWeight="1"
android:ems="5"
android:gravity="left|top"
android:inputType="textMultiLine"
android:padding="10dp"
android:text="" />
</GridLayout>

以下是我的Kotlin代码:
var textbox1: EditText = findViewById(R.id.textbox);
var lineNumber: TextView = findViewById(R.id.linenumber);

// Add the line numbers or remove the line numbers based on the user's input
textbox1.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(p0: Editable?) {
}

override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
}

override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
// Retrieve the number of lines in the user's input
var lines:Int = lineNumber.getLineCount()
var linesText:String = "";

// Loop through the lines
for (i in 1..lines) {
linesText = linesText + "\n" + i;
}

println("linesText = " + linesText)
// Update the line numbers
lineNumber.setText(linesText);
}
})

最佳答案

我能发现的唯一问题是:

var lines:Int = lineNumber.getLineCount()

这不应该是:
var lines : Int = textbox1.getLineCount()

同样,在这种情况下,您的侦听器也应添加到onCreate()或onResume()中。

关于android - Android Kotlin:不会为EditText触发onTextChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59083455/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com