Android 限制编辑文本中的文本长度

Android 限制编辑文本中的文本长度,android,Android,我想通过代码限制编辑文本ui元素的文本长度: EditText et = (EditText) parent.findViewById(R.id.smsBody);; int maxLength = 300; InputFilter[] FilterArray = new InputFilter[1]; FilterArray[0] = new InputFilter.LengthFilter(maxLength); et.setFilters(FilterArray); 但这在最后一行中给

我想通过代码限制编辑文本ui元素的文本长度:

EditText et = (EditText) parent.findViewById(R.id.smsBody);;
int maxLength = 300;

InputFilter[] FilterArray = new InputFilter[1];
FilterArray[0] = new InputFilter.LengthFilter(maxLength);
et.setFilters(FilterArray);

但这在最后一行中给了我一个空指针异常。有什么想法吗?怎么了?这些代码位于异步任务类的
onPostExecute
方法中<代码>父项是主要活动。

您应该能够将.xml文件放在编辑文本下:

android:maxLength=“300”


在.java文件中不需要任何其他内容。.xml文件控制颜色、长度、大小等。

检查et变量是否为空。如果它为null,则在父布局中找不到它。但这没有意义,因为它实际上在那里^^^我敢打赌@Flo是正确的,et可能从findViewById()返回null。发布更多的代码(特别是与父引用相关的任何代码),如果可能的话,解释布局的上下文(例如,我们是否在活动的主布局中?在活动的对话框中?等等),尝试使用YourActivity.findViewById(),而不是parent.findViewById()。哦,我刚刚意识到父布局是错误的,它不是主布局,而是另一个布局,如何访问它?ComposeActivity.findViewById(R.id.smsBody);这似乎是错误的,而且在查找编辑文本时,您不需要“家长”。这可能是导致空指针的原因。而不是:EditText et=(EditText)parent.findviewbyd(R.id.smsBody);用法:EditText et=(EditText)findviewbyd(R.id.smsBody);这就是我在所有android项目中所做的。