如何限制 SearchView 输入文本的长度?安卓 Kotlin

问题描述 投票:0回答:1

我有一个搜索视图。如何在 Kotlin 中限制其输入长度?我想要最多 6 个长度。回答的问题是在 java 中,我无法将其转换为我的代码。

SearchView

我用databinding绑定searchview,给listeners.

searchViewFiyatInput = binding.fiyatInputEditText
    searchViewFiyatInput.setOnQueryTextListener(object : androidx.appcompat.widget.SearchView.OnQueryTextListener{
        override fun onQueryTextSubmit(query: String?): Boolean {
            query?.let {
                try {
                    binding.elmasText.text = (query.toDouble()*2.63).toInt().toString()
                    binding.elmasTextOnImage.text = (query.toDouble()*2.63).toInt().toString()
                    binding.fiyatOnImage.text = query.toInt().toString()
                } catch (e: Exception){
                    binding.elmasText.text = ""
                    binding.elmasTextOnImage.text = ""
                    binding.fiyatOnImage.text = ""
                }
            }
            return true
        }
        override fun onQueryTextChange(newText: String?): Boolean {
            newText?.let {
                try {
                    binding.elmasText.text = (newText.toDouble()*2.63).toInt().toString()
                    binding.elmasTextOnImage.text = (newText.toDouble()*2.63).toInt().toString()
                    binding.fiyatOnImage.text = newText.toInt().toString()
                } catch (e: Exception){
                    binding.elmasText.text = ""
                    binding.elmasTextOnImage.text = ""
                    binding.fiyatOnImage.text = ""
                }
            }
            return true
        }
    })

XML

<androidx.appcompat.widget.SearchView
                    android:id="@+id/fiyatInputEditText"
                    app:iconifiedByDefault="false"
                    android:layout_width="0dp"
                    android:textSize="20sp"
                    android:layout_marginStart="8dp"
                    app:searchIcon="@null"
                    android:layout_marginEnd="8dp"
                    android:inputType="number"
                    android:layout_weight="1"
                    android:layout_height="50dp"
                    />

更新

我尝试过滤但是没有

.filters
方法

searchViewFiyatInput.filters =
        arrayOf<InputFilter>(LengthFilter(6))

(searchViewFiyatInput as TextView).filters= arrayOf(InputFilter.LengthFilter(6))

也没有用。

android kotlin searchview
1个回答
0
投票

您可以使用以下代码:

TextView et = (TextView) searchView.findViewById(R.id.fiyatInputEditText);
et.setFilters(new InputFilter[]{new InputFilter.LengthFilter(6)});

对于科特林:

     binding.fiyatInputEditText.filters = arrayOf(InputFilter.LengthFilter(6))
© www.soinside.com 2019 - 2024. All rights reserved.