5

私はAndroidを学ぶためのiOS開発者です。 Swiftでは、補完ハンドラを作成するのは簡単ですが、Javaで行う方法はまだありません。HTTP要求が完了した後にオブジェクトを返すカスタム補完/コールバックハンドラを作成する

この質問がStackOverflowの人にとってはあまりにも問題であれば、私はごめんなさい。

問題

私はレトロフィットを使用して行われるすべての私のHTTPリクエストを処理するためのクラスを作成しています。

私は、この関数は、私は今の機能はまだ無効であるが、それは後に何かを返すようにするために、私は希望私のMainActivity

RequestHelper.checkEmailAvailability("[email protected]"); 

からこのようにそれを呼び出す私のRequestHelper.java

public static void checkEmailAvailability(String email) { 
    MyWebServiceAPI serviceAPI = retrofit.create(MyWebServiceAPI.class); 

    Call<APIResults> call = serviceAPI.checkEmailAvailability(getAuthenticationHeader(), RequestBody.create(MediaType.parse("text/plain"), email)); 

    call.enqueue(new Callback<APIResults>() { 
     @Override 
     public void onResponse(retrofit.Response<APIResults> response, Retrofit retrofit) { 
       //Parse Response Json 
       //Get some value and place it inside an object 
      //ANDI WOULD LIKE RETURN SOME BOOLEAN VALUE AND SOME OTHER STRING 
     } 

     @Override 
     public void onFailure(Throwable t) { 
       //I WOULD LIKE A BOOLEAN VALUE HERE    
     } 
    }); 
} 

であることを確認してくださいonResponseおよびonFailureの方法を参照してください。

何か考えてください。

答えて

1

CallbackオブジェクトをパラメータとしてcheckEmailAvailability()に渡す必要があります。

MainActivityからメソッドを呼び出すときにインターフェイスを実装し、onXXX()メソッドのresponseパラメータを返して、UIを更新するデータとして返します。

+0

私は別のコールバック(カスタム)をしたいと思います。私は応答を解析し、コールバックでその値を返します。 – JayVDiyk

+0

@JayVDiykあなたは次のようなことができます:public void checkEmailAvailability(String email、最終コールバックリスナー)とonResponse if(listener!= null){ listener.success(retrofit、response); } onFailure if(listener!= null){ listener.failure(t); – JoCuTo

+0

@JeCuRo返信ありがとうございます。まあ言ってみれば。私はコールバックにブール値を返すしたい。どのように私はそれを行うに行くだろうか? – JayVDiyk

関連する問題