2012-03-29 9 views
5

BaseAdapterのサブクラスを使用するListViewがあります。アダプターは項目索引(位置)をIDとして使用するため、IDは安定しません(基礎データの操作の1つが2つのデータ項目間でスワップしています)。BaseAdapter:hasStableIds()をfalseに設定しますか?

アダプターでオーバーライドする必要がありますか?hasStableIds()return false?ここBaseAdapterを見ると

は偽がデフォルト

であることを

を示唆しています。

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

答えて

4

BaseAdapterListAdapterSpinnerAdapterを通じて実装し、それゆえAdapterインターフェースのその方法は、デフォルトの実装を提供する必要があるため、あなたはデフォルトの動作をしたい場合hasStableIds()をオーバーライドする必要はありませんありませんそれ。

ただし、getItemId(int position)は、BaseAdapterクラスの抽象メソッドであるため、オーバーライドする必要があります。

+1

getItemIdの返品は何ですか? –

関連する問題