java - 无法在 onSuccess 和 onFailure 处 @Override
问题描述
我根据我找到的一些示例编写了以下代码。
代码如下所示:
private void fetchBooks(String query){
progress.setVisibility(ProgressBar.VISIBLE);
client = new BookClient();
client.getBooks(query, new JsonHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
try {
// hide progress bar
progress.setVisibility(ProgressBar.GONE);
JSONArray docs = null;
if(response != null) {
// Get the docs json array
docs = response.getJSONArray("docs");
// Parse json array into array of model objects
final ArrayList<Book> books = Book.fromJson(docs);
// Remove all books from the adapter
bookAdapter.clear();
// Load model objects into the adapter
for (Book book : books) {
bookAdapter.add(book); // add book through the adapter
}
bookAdapter.notifyDataSetChanged();
}
} catch (JSONException e) {
// Invalid JSON format, show appropriate error.
e.printStackTrace();
}
}
@Override
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
progress.setVisibility(ProgressBar.GONE);
}
});
}
但是,在两者上onFailure
,onSuccess
我都有一个错误说:
method does not override method from its superclass.
我读到它可能是由于错误的标题但是我使用了以下包,我看到它应该可以工作:
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.SearchView;
import androidx.core.view.MenuItemCompat;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.ProgressBar;
import com.loopj.android.http.JsonHttpResponseHandler;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import cz.msebera.android.httpclient.Header;
我使用的依赖项是:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.codepath.libraries:asynchttpclient:0.0.8'
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'cz.msebera.android:httpclient:4.3.6'
implementation 'com.loopj.android:android-async-http:1.4.6'
}
getBook 定义如下:
public void getBooks(final String query, JsonHttpResponseHandler handler) {
try {
String url = getApiUrl("search.json?q=");
client.get(url + URLEncoder.encode(query, "utf-8"), handler);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
另外,我读过我可能会使用Apache
. 这些错误的任何原因?
谢谢
解决方案
推荐阅读
- reactjs - 我无法在动作创建者文件中使用 useHistory 函数
- python - if else 一条线在 python
- c# - 哪种方式最适合定义 URL 重定向 Web.config 或在 IIS 中?
- android - 如何在活动锁定为纵向模式时检测设备方向更改?
- python - 如何使用字典为食谱建立购物清单?
- typescript - 推断对象键下数组项的类型
- .net-core - 无法在 Visual Studio 2019 中添加 API 控制器。无法运行选定的代码生成器,包还原失败
- go - 如何 json 将 int 类型值封送为 null
- javascript - 页面加载时如何激活 Reg-Ex?
- python - python处理JS并循环获取数据