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を使用して、コードで同等のものを設定できますInputFilterEditTextで最大 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 に答える