如何以编程方式在Android TextView中设置maxLength?
我想以编程方式设置maxLength
属性TextView
,因为我不想在布局中对其进行硬编码。我看不到有关maxLength
的任何set
方法。如何以编程方式在Android TextView中设置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)});
这对我很有用,但在Android 5.1中,你仍然可以继续输入字母,在输入字段中只是“不可见”。但是它们显示在文字提案中。而当你试图在结尾删除字母。 – Radon8472 2015-12-03 15:14:33
这不是“另一种方式”,这是第一个答案的简短版本,同样的方式。 – 2016-01-11 17:22:26
简单的方法限制编辑的文本字符:
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)
为什么不使用setMaxLength作为函数名?你也可以将其应用于textview也......谢谢+1 :) – crgarridos 2017-10-11 09:42:41
我有其他方法遵循此模式:limitDecimalPlaces,limitNumberOnly,limitAscii与limitLength一起去。 – Kevin 2017-10-13 18:37:49
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);
在该大厦,它可能是更清洁的地方:tv.setFilters(新输入过滤器[] {新InputFilter.LengthFilter(10)} ); – 2012-05-15 20:38:13
这对我有效 – adrian4aes 2015-09-09 16:43:51
不能只说“maxLength()”..不,不,不会,..这太容易了。他们必须把它抽象出来......好吧! – giulio 2016-07-15 06:11:02