长度过滤器不适用于textview吗? -安卓

问题描述

在这里也问过同样的问题

Why length max filter dosen't work ? android

但这是该问题的简单版本。

我只想创建一个简单的应用程序。

一个按钮和一个Textview。

每单击此按钮,文本视图的数量就会增加1。

但是我陷入了maxlength实现中。

实际上,我希望此金额仅增加到5,而不再增加

我为数量设置了过滤器,但不起作用,并且xml atrribute的maxlength也不起作用(但我认为xml的maxlength将被覆盖)。

代码

活动:



class MainActivity : AppCompatActivity() {


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)


        val number = findViewById<TextView>(R.id.number)
        val button = findViewById<Button>(R.id.button)


        var amount = 1


        button.setonClickListener {

            amount++

        number.text = amount.toString()

            number.filters = arrayOf(InputFilter.LengthFilter(5))
            
        }

    }
}

xml:

    <TextView
        android:id="@+id/number"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_margin="8dp"
        android:maxLength="5"
        android:padding="8dp"
        android:text="1"
        android:textSize="20sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/number"
        android:layout_centerHorizontal="true"
        android:text="button" />

感谢高级帮助。

解决方法

要检查amount变量的最大值,可以使用if运算符:

button.setOnClickListener {

    amount++

    if (amount <= 5) {
        number.text = amount.toString()
    }            
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...