Android Kotlin:未为EditText触发onTextChanged

时间:2019-11-28 07:12:42

标签: android kotlin android-edittext

我正在创建一个EditText框,在其侧面有行号。为此,我在onTextChanged的{​​{1}}方法中有代码,用于更新addTextChangedListener的行号。但是由于某种原因,由于没有激活EditText语句,当我键入onTextChanged时,EditText事件似乎从未触发过。

下面是我的XML代码:

println

下面是我的Kotlin代码:

<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>

2 个答案:

答案 0 :(得分:1)

我能发现的唯一问题是:

var lines:Int = lineNumber.getLineCount()

这不是吗?

var lines : Int = textbox1.getLineCount()

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

答案 1 :(得分:0)

我发现了该错误,对于在错误所在的帖子中未包含以下代码行,我深表歉意:

我有以下额外的代码行,用于在初始化监听器之后重置监听器:

setContentView(R.layout.activity_main)