2011-10-28 47 views
16

Tôi đang thay thế một số văn bản trong EditText, sau đó tôi muốn di chuyển con trỏ đến cuối đầu vào văn bản hiện tại. Có vẻ như nó hoạt động - khi tôi bắt đầu nhập lại, con trỏ dường như ở cuối EditText, nhưng nó không nhấp nháy/nhấp nháy nữa. Tôi phải chạm lại vào EditText để con trỏ bắt đầu nhấp nháy lần nữa. Tôi có làm sai ?:Di chuyển con trỏ đến cuối EditText?

editText.setSelection(editText.getText().length()-1); 

Cảm ơn

Trả lời

41

Một mẹo nhỏ tôi đã sử dụng được thiết lập các văn bản để "" và sau đó phụ thêm toàn bộ chuỗi tôi muốn.

ví dụ:

String newtext = editText.getText().toString() + "the new text"; 
editText.setText(""); 
editText.append(newtext); 

Điều này dường như đặt con trỏ ở vị trí phù hợp với tôi.

+0

Đáng tiếc là tôi không thể đặt lại tất cả các thử nghiệm bởi vì tôi có nhịp Tôi cần phải duy trì. Con trỏ có xuất hiện nhấp nháy cho bạn một lần nữa sau khi bạn thực hiện thao tác trên không? – user291701

+0

Vâng, giải pháp này hiệu quả với tôi. – tarrant

15
EditText et = (EditText)findViewById(R.id.inbox); 
et.setSelection(et.getText().length()); 

tiếp cận thứ hai

Có một chức năng gọi là append cho ediitext mà gắn thêm giá trị chuỗi giá trị EditText hiện tại và đặt con trỏ vào cuối của giá trị. Bạn có thể có giá trị chuỗi như giá trị ediitext hiện tại và gọi append();

myedittext.append("current_this_edittext_string"); 
+1

Cảm ơn bạn. Cả hai cách tiếp cận dường như làm việc cho tôi. –

+0

imo cách tiếp cận đầu tiên gọn gàng – Pooya

+0

Cách tiếp cận đầu tiên hoạt động! – Yashovardhan

0

Đối với phép người sử dụng thay đổi toàn bộ văn bản trong Edit Text (làm cho nhiều người dùng thân thiện)

editText.selectAll(); //user can delete the whole text at one go 
editText.requestFocus(); 
Các vấn đề liên quan