CollectionView を使用して ListFragment を持つ Android アプリケーションに取り組んでいます。CollectionView の onScroll イベントから値を変更して取得し、それらを ListFragment または非静的メソッドの CollectionView で使用できるようにしたいのですが、onScroll イベントは静的であるため、への参照は許可されません。非静的メソッド。これを行う方法はありますか、または ListFragment の onScroll イベントを非静的にする方法はありますか?
基本的な CollectionView onScroll イベント コード
private class MultiScrollListener implements OnScrollListener {
private Set<OnScrollListener> children = new HashSet<OnScrollListener>();
public void addOnScrollListener(OnScrollListener listener) {
children.add(listener);
}
@Override
public void onScrollStateChanged(AbsListView absListView, int i) {
for (OnScrollListener listener : children) {
listener.onScrollStateChanged(absListView, i);
}
}
@Override
public void onScroll(AbsListView absListView, int i, int i2, int i3) {
// ?????
// ????? I'd like to get the values of i, i2 and i3, from above
// ????? as they change into a non-static method.
// ?????
myMethod(i);
// I get the following error from Android Studio:
// non static method 'myMethod(int i) cannot be referenced from a static context
//
for (OnScrollListener listener : children) {
listener.onScroll(absListView, i, i2, i3);
}
}
}
示唆されているように、以下のようにすべてを公開しようとしましたが、変更はなく、同じエラーが発生しました。
public class MultiScrollListener implements OnScrollListener {
public Set<OnScrollListener> children = new HashSet<OnScrollListener>();
public void addOnScrollListener(OnScrollListener listener) {
children.add(listener);
}
@Override
public void onScrollStateChanged(AbsListView absListView, int i) {
for (OnScrollListener listener : children) {
listener.onScrollStateChanged(absListView, i);
BrowseCorrelatedSessionsActivity.onBrowseSessionScrolled(1);
}
}
@Override
public void onScroll(AbsListView absListView, int i, int i2, int i3) {
for (OnScrollListener listener : children) {
listener.onScroll(absListView, i, i2, i3);
}
}