2013-08-09 38 views
5

Sự cố này đã khiến tôi lo lắng một thời gian. Tôi có một danh sách xem và trong mỗi hàng có ba EditText trong đó người dùng có thể nhập dữ liệu. Khi người dùng chọn hộp chỉnh sửa, văn bản sẽ được chọn, vì vậy khi anh ấy nhập khóa đầu tiên, văn bản trước đó sẽ bị xóa.Hành vi lạ với selectAllOnFocus khi EditText nằm trong ListView

Tất cả điều này hoạt động hoàn hảo với tùy chọn selectAllOnFocus được đặt thành true. Vấn đề xảy ra khi tôi phải gọi notifyDataSetChanged. Có một nút trong mỗi hàng xóa hàng và đó là khi tôi gọi phương thức notifyDataSetChanged của bộ điều hợp. Sau đó, khi người dùng chọn EditBox, nó sẽ không chọn toàn bộ văn bản, nhưng con trỏ đặt ở bên trái của văn bản và một mũi tên được hiển thị bên dưới con trỏ.

Tôi đã thử đặt selectAllOnFocus trong mã và trong tệp bố cục nhưng không có may mắn.

Tôi nên thử gì? Tui bỏ lỡ điều gì vậy?

Tôi đã thử vô hiệu hóa sự kiện thay đổi tiêu điểm, không may mắn.

Cảm ơn!

Trả lời

0

Vì điều này xảy ra bất cứ khi nào tôi gọi adapter.notifyDataSetChanged(), tôi đã tìm ra. Và đây là những gì tôi đã kết thúc:

adapter.clear();  
adapter = new AdapterOfWhateverItemsTypeIs(this, items); 
listview.setAdapter(adapter); 
adapter.notifyDataSetChanged(); 

Sau này, tôi có hành vi mong đợi của tùy chọn SelectAllOnFocus của EditText.

0

Hành vi mong đợi mà bạn muốn đạt được là gì?

EDIT:

Tại sao không thử kích hoạt hai sự kiện nhấp chuột theo cách thủ công. Đó là một giải pháp hơi hacky nhưng nếu nó hoạt động hơn những người quan tâm. Những gì bạn có thể làm là có được cái nhìn từ xem danh sách của bạn mà bạn muốn có các văn bản đã chọn vào và bắn ra hai lần nhấp chuột trong một bài như vậy

myEdit.post(new Runnable(){ 

    public void run() 
    { 
    myEdit.performClick(); 
    myEdit.performClick(); 
    } 

} 

sử dụng bài sẽ đảm bảo rằng các sự kiện bị đuổi việc sau khi chế độ xem đã được tăng cường lại sau khi gọi không hợp lệ trên bộ điều hợp danh sách xem của bạn

+0

Đọc kỹ câu hỏi :) Khi người dùng chọn EditText, toàn bộ văn bản được chọn và bàn phím bật lên. Đây là những gì tôi muốn, nhưng nó không hoạt động như thế. Đôi khi (thường sau khi bàn phím hiển thị) khi người dùng chọn một EditText khác, nó không chọn (làm nổi bật) toàn bộ văn bản, nhưng nó chỉ tập trung ở phía bên trái cùng của điều khiển và một mũi tên được hiển thị bên dưới con trỏ. –

+0

Xin lỗi nếu tôi không đủ rõ ràng, vui lòng chỉnh sửa câu hỏi nếu bạn cho rằng mình có thể cải thiện câu hỏi. Và cho tôi biết nếu bạn cần thêm chi tiết. Cảm ơn –

+0

Vì vậy, bạn muốn con trỏ được định vị ở cuối văn bản? –