我正在編寫一個使用 Google 圖書搜索 API 的應(yīng)用程序,該應(yīng)用程序要做的就是根據(jù)我在應(yīng)用程序代碼中以字符串形式提供的搜索查詢顯示圖書列表,我使用 AsyncTask 內(nèi)部類來處理后臺工作(發(fā)出 HTTP 請求、JSON 格式化...等),我還有書籍服裝適配器和書籍類來從中獲取數(shù)據(jù),我的問題是應(yīng)用程序不會在列表視圖中顯示任何書籍。這是我的代碼:我的活動:public class MainActivity extends AppCompatActivity { final static String bookUrl = "https://www.googleapis.com/books/v1/volumes?q=android&maxResults=6"; private BookAdapter bookAdapter; private ArrayList<Book> books; private ListView list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); list = (ListView) findViewById(R.id.list); new BookAsynck().execute(bookUrl); } private class BookAsynck extends AsyncTask<String, Void, ArrayList<Book>> { @Override protected ArrayList<Book> doInBackground(String... strings) { books = Utils.fetchBookData(bookUrl); return books; } @Override protected void onPostExecute(ArrayList<Book> books) { bookAdapter = new BookAdapter(MainActivity.this, books); list.setAdapter(bookAdapter); } }}
3 回答

慕桂英4014372
TA貢獻1871條經(jīng)驗 獲得超13個贊
將以下行更改為onCreate()
ListView list = (ListView) findViewById(R.id.list);
到
list = (ListView) findViewById(R.id.list);

森欄
TA貢獻1810條經(jīng)驗 獲得超5個贊
從 Android 9 開始,未加密的請求將不起作用,這意味著HttpsURLConnection可以起作用,但HttpURLConnection則不起作用。
然后,您嘗試連接的 URL 必須具有 https:// 訪問權(quán)限,否則您應(yīng)該將其包含在清單中
android:usesCleartextTraffic="true"

阿波羅的戰(zhàn)車
TA貢獻1862條經(jīng)驗 獲得超6個贊
看來您錯過了在活動內(nèi)調(diào)用異步任務(wù)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list = (ListView) findViewById(R.id.list);
new BookAsynck().execute(bookUrl);
}
添加回答
舉報
0/150
提交
取消