2016-05-02 13 views
0

私は、認証でhttp接続を構築するのにvolleyを使用したいと思います。私は、セグメント匿名内部クラスでAndroid Studioプロンプトで「メソッドがそのスーパークラスをオーバーライドしない」理由

@Override 
        public Map<String, String> getHeaders() throws AuthFailureError { 
         HashMap<String, String> params = new HashMap<String, String>(); 
         String creds = String.format("%s:%s","USERNAME","PASSWORD"); 
         String auth = "Basic " + Base64.encodeToString(creds.getBytes(), Base64.DEFAULT); 
         params.put("Authorization", auth); 
         return params; 
        } 

StringRequestを追加し、それがどのように見えるthis answer次のとおりです。

StringRequest stringRequest = new StringRequest(Request.Method.GET, url, 
     new Response.Listener<String>() { 


//the segment below is what I add 
      @Override 
      public Map<String, String> getHeaders() throws AuthFailureError { 
       HashMap<String, String> params = new HashMap<String, String>(); 
       String creds = String.format("%s:%s","USERNAME","PASSWORD"); 
       String auth = "Basic " + Base64.encodeToString(creds.getBytes(), Base64.DEFAULT); 
       params.put("Authorization", auth); 
       return params; 
      } 

//the segment above is what I add 
      @Override 
      public void onResponse(String response) { 
       // Display the first 500 characters of the response string. 
      } 
     }, new Response.ErrorListener() { 
    @Override 
    public void onErrorResponse(VolleyError error) { 
    } 
}); 

はしかし、IDEはgetHeaders()はスーパークラスをオーバーライドしていないことを示唆しています。

なぜですか?StringRequestがクラスRequest<String>を継承し、後者にgetHeaders()というメソッドがあります。

+1

あなたは 'Request'クラスを拡張していますか?例えば。 'public class GetUser extends Request ' – Draken

答えて

2

あなたは、このような方法を持っていないResponse.Listener<String>の代わりに、Request<String>Response.Listener<String>の新しいインスタンス内public Map<String, String> getHeaders()をオーバーライドしている(のみonResponse(String))。

関連する問題