2013-03-23 57 views
5

我知道如何通過XML(android:maxLength)限制大小,但我在代碼中動態創建了一個警告對話框。有什麼類似的我可以使用? (更喜歡使用API​​ 10兼容解決方案)如何限制在警報對話框中輸入的字符數EditText

我正在使用警報對話框來提示用戶輸入文本值,以稍後以圖形方式顯示。

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()); 
     } 
    }); 

回答

5

嘗試這樣:

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

哇,這很簡單,很好用!謝謝! – RiddlerDev 2013-03-23 23:52:04

+0

不客氣。 @ MH。's是一樣的,只有一行! – ElefantPhace 2013-03-23 23:54:03

10

您可以通過InputFilter來設置相當於在代碼中maxLength。假設你想要的EditText接受20個字符的最大:

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

由於setFilters()接受的濾光器陣列,您可以添加多個。另外,例如,如果您需要更多控制應允許的字符類型,您可以實現自己的過濾器並將其傳入數組。

相關問題