如何以编程设置最大长度在Android中的TextView?
题
我想以编程方式设置maxLength
的TextView
财产我不想硬它在布局代码。我不能看到set
有关的任何maxLength
方法。
任何人都可以指导我如何实现这一目标?
解决方案
应该是类似的东西。但从未使用它的TextView,只的EditText:
TextView tv = new TextView(this);
int maxLength = 10;
InputFilter[] fArray = new InputFilter[1];
fArray[0] = new InputFilter.LengthFilter(maxLength);
tv.setFilters(fArray);
其他提示
尝试此
int maxLengthofEditText = 4;
editText.setFilters(new InputFilter[] {new InputFilter.LengthFilter(maxLengthofEditText)});
简单的方法的限制编辑文本字符强>:
EditText ed=(EditText)findViewById(R.id.edittxt);
ed.setFilters(new InputFilter[]{new InputFilter.LengthFilter(15)});
对于那些使用科特林
fun EditText.limitLength(maxLength: Int) {
filters = arrayOf(InputFilter.LengthFilter(maxLength))
}
然后,可以只使用一个简单editText.limitLength(10)
有关科特林和而不重置之前的过滤器:
fun TextView.addFilter(filter: InputFilter) {
filters =
if (filters.isNullOrEmpty()) {
arrayOf(filter)
} else {
filters
.toMutableList()
.apply {
removeAll { it.javaClass == filter.javaClass }
add(filter)
}
.toTypedArray()
}
}
textView.addFilter(InputFilter.LengthFilter(10))
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title");
final EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
//for Limit...
input.setFilters(new InputFilter[] {new InputFilter.LengthFilter(3)});
builder.setView(input);
最好的解决方案,我发现
textView.setText(text.substring(0,10));
不隶属于 StackOverflow