如何限制在警报对话框EditText中输入的字符数

时间:2013-03-23 23:45:26

标签: android android-edittext android-alertdialog

我知道如何通过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());
      }
    });

2 个答案:

答案 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);