2013-03-23 43 views
5

Tôi biết cách giới hạn kích thước thông qua XML (android: maxLength), nhưng tôi đang tự động tạo hộp thoại cảnh báo trong mã. Có cái gì đó tương tự tôi có thể sử dụng? (Ưu tiên có giải pháp tương thích API 10)Làm cách nào để giới hạn số lượng ký tự được nhập trong hộp thoại cảnh báo EditText

Tôi đang sử dụng hộp thoại cảnh báo để nhắc người dùng hiển thị giá trị văn bản sau này.

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

Trả lời

5

thử một cái gì đó như thế này:

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

Ồ, điều đó thật dễ dàng và hoạt động tuyệt vời! Cảm ơn! – RiddlerDev

+0

Bạn được chào đón. @ MH. là như nhau, chỉ trong một dòng! – ElefantPhace

10

Bạn có thể đặt maxLength tương đương trong mã bằng phương tiện của một InputFilter. Giả sử bạn muốn các EditText để chấp nhận tối đa 20 ký tự:

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

Kể từ setFilters() chấp nhận một loạt các bộ lọc, bạn có thể thêm nhiều hơn một. Ngoài ra, ví dụ: nếu bạn cần kiểm soát nhiều hơn đối với loại ký tự nào được cho phép, bạn có thể triển khai bộ lọc của riêng mình và chuyển nó vào với mảng.

Các vấn đề liên quan