読者です 読者をやめる 読者になる 読者になる

spring of life

技術、ときどき日常のブログ(予定)

複数種類の通信をする

WebAPIを2種類以上使って、onCreateLoader, onLoadFinished 内でそれぞれ違う処理したい場合

今までクラスにこうしてた↓

public class ... implements LoaderCallbacks<HogeClass> {

...
  getLoaderManager().initLoader(LOADER_ID, args, this);
...

  @Override
  public Loader<HogeClass> onCreateLoader(int id, Bundle args) {
    ...
  }

  @Override
  public void onLoadFinished(Loader<HogeClass> loader, HogeClass data) {
    ...
  }
}

これだと、このクラスで initLoader 使っていろいろ違う処理を書こうとしても onCreateLoader, onLoadFinished が1つなのでクラスも同じにしないといけないしいろいろ面倒

てことで、thisじゃなくて、そこにコールバックを書けばいいんですね〜

  getLoaderManager().initLoader(LOADER_ID, args, new LoaderManager.LoaderCallbacks<HogeClass>() {
    @Override
    public Loader<HogeClass> onCreateLoader(int id, Bundle args) {
      ...
    }

    @Override
    public void onLoadFinished(Loader<HogeClass> loader, HogeClass data) {
      ...
    }

    ...
  });

何かこれも基本的なことのような気がしてきたな〜

java スキルも一応ある程度欲しい(^_^;)

最近は Ruby ばっかだからな。。。