2012-03-21 34 views
6

Bây giờ tôi đang làm việc trên một ứng dụng Android. Tôi đã tạo một bàn phím tùy chỉnh với các chức năng. Tôi đang sử dụng một văn bản để hiển thị các văn bản đã nhập. Chỉnh sửa văn bản có thể có n số dòng.Now vấn đề của tôi là tôi có một nút lên trong bàn phím của tôi. Nếu tôi nhấp vào nút lên sau đó tôi phải đi các dòng trước cùng một vị trí.Nhưng tôi không thể tìm ra số dòng edittext và vị trí curser của dòng hiện tại. Xin hãy giúp tôi bạn bèSố dòng Edittext và vị trí con trỏ dòng thời gian.

+0

1 Tôi nghĩ câu hỏi sẽ dẫn đến một chức năng hữu ích. – Gangnus

Trả lời

7

cho hiện tại Cursor Dòng thử điều này:

public int getCurrentCursorLine(EditText editText) 
{  
    int selectionStart = Selection.getSelectionStart(editText.getText()); 
    Layout layout = editText.getLayout(); 

    if (selectionStart != -1) { 
     return layout.getLineForOffset(selectionStart); 
    } 

    return -1; 
} 

và cho con trỏ vị trí sử dụnggetSelectionStart():

int cursorPosition = myEditText.getSelectionStart(); 
2

Nếu bạn không sử dụng một số chiều rộng cố định phông chữ như courrier, nó không phải là dễ dàng.

Không có hàm trả về vị trí thư cho văn bản nguồn và độ rộng cần thiết tính bằng pixel. Bạn sẽ phải viết nó.

bạn nên đo các văn bản, như ở đây:

paint.setTypeface(Typeface.DEFAULT);// your preference here 
paint.setTextSize(33); // have this the same as your text size 

String text = "get text here "; 

paint.getTextBounds(text, 0, text.length(), bounds); 

tôi sẽ sử dụng cho việc tìm kiếm các vị trí chính xác một số thuật toán băm

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