2012-03-29 25 views
5

Tôi có một ListView sử dụng một lớp con của BaseAdapter. Bộ điều hợp sử dụng chỉ mục mục (vị trí) làm id và do đó các id không ổn định (một trong các thao tác trên dữ liệu cơ bản là hoán đổi giữa hai mục dữ liệu).BaseAdapter: đặt hasStableIds() thành false?

Tôi có cần ghi đè trong bộ điều hợp của mình hasStableIds() đến return false không?

Nhìn vào BaseAdapter đây đề nghị

rằng sai là mặc định

.

http://www.netmite.com/android/mydroid/frameworks/base/core/java/android/widget/BaseAdapter.java

// Is this required? Isn't this the default? 
@Override 
public final boolean hasStableIds() { 
    return false; 
} 

@Override 
public final long getItemId(int position) { 
    return position; 
} 

Trả lời

4

Không bạn không cần phải ghi đè hasStableIds() nếu bạn muốn hành vi mặc định vì nó là một phương pháp giao diện AdapterBaseAdapter thực hiện thông qua ListAdapterSpinnerAdapter và do đó phải cung cấp một cài đặt mặc định của cái đó.

Tuy nhiên, bạn cần ghi đè getItemId(int position) vì đây là phương pháp trừu tượng của lớp BaseAdapter.

+1

bạn nên trả lại gì cho getItemId? –

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