我知道如何通过XML(android:maxLength)限制大小,但我在代码中动态创建一个警告对话框。我可以使用类似的东西吗? (更喜欢API 10兼容解决方案)
我正在使用警告对话框提示用户稍后以图形方式显示文本值。
public void onClickPosition(View v) {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle(R.string.title_Position);
alert.setMessage(R.string.message_Position);
final EditText input = new EditText(this);
input.setText(_currentClass.getPosition());
alert.setView(input);
alert.setPositiveButton(R.string.option_Okay, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
_currentClass.setPosition(input.getText().toString());
TextView textView = (TextView)findViewById(R.id.textPosition);
textView.setText(_currentClass.getPosition());
}
});
答案 0 :(得分:10)
您可以通过maxLength
在代码中设置InputFilter
等效代码。假设您希望EditText
最多接受20个字符:
input.setFilters(new InputFilter[] { new InputFilter.LengthFilter(20) });
由于setFilters()
接受过滤器数组,因此您可以添加多个过滤器。另外,例如,如果您需要更多地控制应该允许哪种类型的字符,您可以实现自己的过滤器并将其传入数组。
答案 1 :(得分:5)
尝试这样的事情:
InputFilter[] FilterArray = new InputFilter[1];
FilterArray[0] = new InputFilter.LengthFilter(MAX_LENGTH);
input.setFilters(FilterArray);