I tried this:
EditText.filters = arrayOf<InputFilter>(InputFilter.LengthFilter(7),DecimalDigitsInputFilter(2))
But it doesn't work. DecimalDigitsInputFilter is unresolved reference. Any ideas on how to limit?
I tried this:
EditText.filters = arrayOf<InputFilter>(InputFilter.LengthFilter(7),DecimalDigitsInputFilter(2))
But it doesn't work. DecimalDigitsInputFilter is unresolved reference. Any ideas on how to limit?
 
    
    Try this code:
val input = EditText(this)
        var count = -1
        input.setRawInputType(InputType.TYPE_CLASS_NUMBER or InputType.TYPE_NUMBER_FLAG_DECIMAL)
        input
        //input.hint = "$"
       
        input.filters = arrayOf(InputFilter.LengthFilter(7))
        input.addTextChangedListener(object : TextWatcher {
            override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
                   //TODO("Not yet implemented")
            }
            override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
                //             TODO("Not yet implemented")
            }
            override fun afterTextChanged(arg0: Editable?) {
                if (arg0!!.length > 0) {
                    val str: String = input.getText().toString()
                    input.setOnKeyListener(object : DialogInterface.OnKeyListener, View.OnKeyListener {
                        override fun onKey(p0: DialogInterface?, keyCode: Int, p2: KeyEvent?): Boolean {
                            if (keyCode == KeyEvent.KEYCODE_DEL) {
                                count--
                                val fArray = arrayOfNulls<InputFilter>(1)
                                fArray[0] = LengthFilter(7)
                                input.setFilters(fArray)
                            }
                            return false
                        }
                        override fun onKey(p0: View?, p1: Int, p2: KeyEvent?): Boolean {
                            if (p1 == KeyEvent.KEYCODE_DEL) {
                                count--
                                val fArray = arrayOfNulls<InputFilter>(1)
                                fArray[0] = LengthFilter(7)
                                input.setFilters(fArray)
                            }
                            return false
                        }
                    })
                    val t = str[arg0.length - 1]
                    if (t == '.') {
                        count = 0
                    }
                    if (count >= 0) {
                        if (count === 2) {
                            val fArray = arrayOfNulls<InputFilter>(1)
                            fArray[0] = LengthFilter(arg0.length)
                            input.setFilters(fArray)
                        }
                        count++
                    }
                }
            }
        }
        )
Let me know if this works.
 
    
    