5

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

2 回答 2

10

您可以maxLength通过InputFilter. 假设您希望EditText最多接受 20 个字符:

input.setFilters(new InputFilter[] { new InputFilter.LengthFilter(20) });

由于setFilters()接受一系列过滤器,因此您可以添加多个过滤器。此外,例如,如果您需要对应允许的字符类型进行更多控制,您可以实现自己的过滤器并将其与数组一起传递。

于 2013-03-23T23:52:29.883 回答
5

尝试这样的事情:

InputFilter[] FilterArray = new InputFilter[1];
FilterArray[0] = new InputFilter.LengthFilter(MAX_LENGTH);
input.setFilters(FilterArray);
于 2013-03-23T23:49:43.520 回答