2013-03-14 3 views
2

액티비티에서 다른 AsyncTaskLoaders (반환 유형이 다른)를 사용하고 싶습니다. 콜백 메소드를 구현하는 가장 좋은 방법은 무엇입니까?하나의 액티비티에서 다른 (AsyncTask) 로더 사용하기

이 작동하지 않습니다

공용 클래스 MyActivity는 활동 LoaderManager.LoaderCallbacks < MyPojo>, LoaderManager.LoaderCallbacks <이 MyOtherPojo>

이클립스

The interface LoaderCallbacks cannot be implemented more than once with different arguments 
을 말한다 구현 확장

그럼 어떻게해야합니까? 내 생각은

이 LoaderManager.LoaderCallbacks에게 < 객체를 구현하는 활동>

은 그 너무 우아하지 않는 것 같습니다하지만이 객체의 유형 콜백 메소드에 확인을하는 것입니다. 더 좋은 방법이 있습니까?

답변

8

각 콜백에 대해 내부 클래스를 만드는 것은 어떻습니까?

public class MyClass extends Activity { 

    private class Callback1 implements LoaderManager.LoaderCallbacks<MyPojo> { 
    ... 
    } 
    private class Callback2 implements LoaderManager.LoaderCallbacks<MyOtherPojo> { 
    ... 
    } 
} 
+0

훌륭하고 감사합니다. – FWeigl

+0

하지만이 경우 init loader를 어떻게 호출합니까? 내부 클래스의 새 인스턴스 –

+0

@AmeyJahagirdar :. 'getLoaderManager() initLoader (LOADER_MYPOJO_ID, 널, 새로운 된 callback1()가) 여러 로더는 로더가 필요합니다 (같은 콜백을 사용하는 경우는 '이 또는 registrered 할 고유 한 ID를 사용하면 onCreateLoader와 onLoadFinished는 콜백 호출 위치를 구별 할 수 있습니다. 콜백 멤버가 있고 initLoader()에이 콜백 멤버를 사용할 수 있습니다. reusableCallback1 = new LoaderCallbacks {...}; ' –

관련 문제