2013-03-23 42 views
5

XML(android:maxLength)でサイズを制限する方法を知っていますが、コードでアラートダイアログを動的に作成しています。私が使うことのできるものがありますか? (API 10互換のソリューションもあることをお勧めします)アラートダイアログに入力された文字数を制限する方法EditText

警告ダイアログを使用して、テキスト値を後でグラフィカルに表示するように促しています。あなたがInputFilterによってコードにmaxLength同等に設定することができます

InputFilter[] FilterArray = new InputFilter[1]; 
FilterArray[0] = new InputFilter.LengthFilter(MAX_LENGTH); 
input.setFilters(FilterArray); 

答えて

5

はこのような何かを試してみてください。あなたはEditTextは、最大20個の文字を受け入れるようにしたいと思いますと仮定します。

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

setFilters()はフィルターの配列を受け入れているので、複数のを追加することができます。また、たとえば、許可する文字の種類をより詳細に制御する必要がある場合は、独自のフィルタを実装して配列に渡すこともできます。

+0

うわー、それは簡単で素晴らしいです!ありがとう! – RiddlerDev

+0

ようこそ。 @ MH。は同じで、1行でしかありません! – ElefantPhace

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()); 
     } 
    }); 
関連する問題