Androidプログラミング質問スレ Part21
■ このスレッドは過去ログ倉庫に格納されています
0899デフォルトの名無しさん
2012/05/13(日) 14:33:42.58ありがとうございます
確かにデバッグで1行ずつ調べたら
ArrayAdapter.add(Object) line: 179
→ArrayAdapter.notifyDataSetChanged() line: 247
→ArrayAdapter(BaseAdapter).notifyDataSetChanged() line: 50
→DataSetObservable.notifyChanged() line: 31
→★→AdapterView$AdapterDataSetObserver.onChanged() line: 776
という感じで呼ばれてました。
でもどうして★のように呼び出されるのかわかりません。
DataSetObservable.notifyChanged()のmObservers.get(i).onChanged();のmObservers.get(i)は
public class DataSetObservable extends Observable<DataSetObserver>を見て
>public abstract class Observable<T> {
> protected final ArrayList<T> mObservers = new ArrayList<T>();なので
DataSetObserver型
そしてDataSetObserver.onChanged();はさっきの通り
public abstract class DataSetObserver {
public void onChanged() {
// Do nothing
}
となっています。
いつの間にmObservers がAdapterDataSetObserver型になってるんでしょうか?
■ このスレッドは過去ログ倉庫に格納されています