2017-03-07 51 views
3

我一直在爲這段代碼苦苦掙扎了一段時間。爲什麼我會收到跟隨錯誤? 方法不自其超 這裏重寫方法是代碼:JsonHttpResponseHandler - 方法不會覆蓋超類的方法

public void CanSendPassword() { 
    asyncHttpClientPassword = new AsyncHttpClient(); 
    requestParamsPassword = new RequestParams(); 

    requestParamsPassword.put("email", mEmail); 
    asyncHttpClientPassword.post(BASE_URL, requestParamsPassword, new JsonHttpResponseHandler() 
    { 
     @Override 
     public void onSuccess(int statusCode, Header[] headers, JSONObject response) { 
      super.onSuccess(statusCode, headers, response); 
      jsonResponse = response.toString(); 
     } 

     @Override 
     public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) { 
      super.onFailure(statusCode, headers, throwable, errorResponse); 
      jsonResponse = "failed"; 
     } 
    } 
    ); 
} 

@override兩者都出現了同樣的錯誤和的onSuccess和onFailure處太灰色?

+0

有趣的是代碼的作品? onSuccess和onFailure都會在適當的時候被調用,但是我仍然會在代碼下面看到紅色的錯誤行。 onSuccess和onFailure的錯誤是「方法不會覆蓋超類的方法,(狀態碼....)的錯誤是」無法解析方法onsuccess ...「。我會繼續挖掘如何使錯誤消失 – timv

+0

我現在有這個問題,你有能力解決這個問題嗎? – Binsoi

+0

仍然在工作,所以檢查回來,我會得到答案一些如何 – timv

回答

0

終於解決了我的問題。這不是我正在做的一切正確的代碼。我只是讓舊的jar文件仍在app/libs文件夾中。

這是我看到的錯誤。一切正常,但Override和super.onSuccess是紅色下劃線。

enter image description here

enter image description here

刪除Android平臺的異步-1.4.3.jar文件和紅線消失。

0

這是我正在工作的解決方案,但它不能解決我確切的問題。我發佈這個,因爲我不明白爲什麼這個代碼工作,但我的代碼不。

public class MainActivity extends AppCompatActivity implements View.OnClickListener { 

EditText etSearchTerms; 
Button btnSearch; 
TextView tvSearchResults; 
MyLoopjTask myLoopjTask; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    etSearchTerms = (EditText) findViewById(R.id.etSearchTerms); 
    btnSearch = (Button) findViewById(R.id.btnSearch); 
    tvSearchResults = (TextView) findViewById(R.id.tvSearchResults); 

    btnSearch.setOnClickListener(this); 

    myLoopjTask = new MyLoopjTask(); 
} 

@Override 
public void onClick(View v) { 
    String searchTerm = etSearchTerms.getText().toString(); 
    etSearchTerms.setText(""); 
    // make loopj http call 
    myLoopjTask.executeLoopjCall(searchTerm); 
} 
} 

這裏是其它類:

public class MyLoopjTask { 


AsyncHttpClient asyncHttpClient; 
RequestParams requestParams; 

String BASE_URL = "https://team.mycompany.com/teambeta/LoginApp/Recovery/"; 
String jsonResponse; 

public MyLoopjTask() { 
    asyncHttpClient = new AsyncHttpClient(); 
    requestParams = new RequestParams(); 
} 

public void executeLoopjCall(final String queryTerm) { 

    requestParams.put("email", queryTerm); 
    asyncHttpClient.post(BASE_URL, requestParams, new JsonHttpResponseHandler() { 
     @Override 
     public void onSuccess(int statusCode, Header[] headers, JSONObject response) { 
      super.onSuccess(statusCode, headers, response); 
      jsonResponse = response.toString(); 
     } 

     @Override 
     public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) { 
      super.onFailure(statusCode, headers, throwable, errorResponse); 
      jsonResponse = "failed"; 
     } 
    }); 
} 
} 

那麼,爲什麼此代碼的工作,但不是在我的oringinal的問題嗎?

3

這裏是我的代碼

TwitterRestClient

import android.content.Context; 
import com.loopj.android.http.*; 
import cz.msebera.android.httpclient.entity.StringEntity; 

public class TwitterRestClient { 
    private static final String BASE_URL = "https://www.example.com/api/"; 

    private static AsyncHttpClient client = new AsyncHttpClient(); 

    public static void get(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) { 
    client.get(getAbsoluteUrl(url), params, responseHandler); 
    } 

    public static void post(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) { 
    client.post(getAbsoluteUrl(url), params, responseHandler); 
    } 

    public static void post(Context ctx, String url, StringEntity entity, java.lang.String contentType, AsyncHttpResponseHandler responseHandler){ 
    client.post(ctx,getAbsoluteUrl(url),entity,contentType,responseHandler); 
    } 

    private static String getAbsoluteUrl(String relativeUrl) { 
     return BASE_URL + relativeUrl; 
    } 
} 

此方法在我LoginAcitivity

public void testPost(StringEntity entity) throws JSONException { 
    TwitterRestClient.post(getApplicationContext(),"api-auth/", entity,"application/json", new JsonHttpResponseHandler() { 

     @Override 
     public void onSuccess(int statusCode, cz.msebera.android.httpclient.Header[] headers, org.json.JSONArray response) { 
      // If the response is JSONObject instead of expected JSONArray 
      GlobalFunctions.ShowToast(getApplicationContext(),"test"); 
     } 

     @Override 
     public void onFailure(int statusCode, cz.msebera.android.httpclient.Header[] headers, java.lang.Throwable throwable, org.json.JSONArray errorResponse){ 
      GlobalFunctions.ShowToast(getApplicationContext(),"test1123"); 
     } 

     @Override 
     public void onFailure(int statusCode, cz.msebera.android.httpclient.Header[] headers, java.lang.Throwable throwable, org.json.JSONObject errorResponse){ 
      GlobalFunctions.ShowToast(getApplicationContext(),errorResponse.toString()); 
     } 

     @Override 
     public void onFailure(int statusCode, cz.msebera.android.httpclient.Header[] headers, java.lang.String responseString, java.lang.Throwable throwable){ 
      GlobalFunctions.ShowToast(getApplicationContext(),responseString); 
     } 
    }); 
} 

這就是我所說的,當用戶點擊這個按鈕

public void signIn(View v){ 
    try { 

     String url = "/api-auth"; 

     JSONObject jsonParams = new JSONObject(); 

     jsonParams.put("username", "[email protected]"); 
     jsonParams.put("password", "cornedbeef"); 

     StringEntity entity = new StringEntity(jsonParams.toString()); 
     client.post(context, url, entity, "application/json", 
       responseHandler); 

     testPost(entity); 


    } catch (Exception err) 
    { 
     GlobalFunctions.ShowToast(this, err.toString()); 
    } 
} 

希望這會幫助你,告訴我這是不是工作,因爲我在發佈之前編輯這個。

+0

會嘗試你的建議並回復給你。感謝代碼。 – timv

相關問題