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

Rid*_*Dev 5 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());
      }
    });
Run Code Online (Sandbox Code Playgroud)

MH.*_*MH. 10

您可以maxLength通过a在代码中设置等效项InputFilter.假设您希望EditText最多接受20个字符:

input.setFilters(new InputFilter[] { new InputFilter.LengthFilter(20) });
Run Code Online (Sandbox Code Playgroud)

由于setFilters()接受一系列过滤器,您可以添加多个过滤器.另外,例如,如果您需要更多地控制应该允许哪种类型的字符,您可以实现自己的过滤器并将其传入数组.


Ele*_*ace 5

尝试这样的事情:

InputFilter[] FilterArray = new InputFilter[1];
FilterArray[0] = new InputFilter.LengthFilter(MAX_LENGTH);
input.setFilters(FilterArray);
Run Code Online (Sandbox Code Playgroud)