ページ送りとページ戻りのボタンを作成したのに実装していなかったので、動作するように設定した。また、現在のページと全体のページを表示。数日前の総ページ数は44,192頁。(以下実行画面をキャプチャーした時は、44,202頁に増えていた。)
44,192頁目を見たかったが、最大検索件数は500頁まで(44,192頁を指定して検索したら、以下の通りのリターン。)となっており、データを取得することはできなかった。地域を日本、言語を日本語で検索したが、映画の本数合計は、 883,838本。
{"success": false,"status_code": 22,"status_message": "Invalid page: Pages start at 1 and max at 500. They are expected to be an integer."}
実行画面:
背景をダークモードにしてみた。また、リストの検索ウインドウを追加したが、検索ウインドウの背景色までダークとなってしまった(MIT AppInventorのバグ?)。=> この試みは失敗。Designerでは、背景色は白色なのだが。
このビデオはダークモードをやめて元のカラーモードでキャプチャーしたもの。
スクリーンのデザイン:
検索ウインドウが追加された程度。
ブロック・コード:追加部分のみ。
1. 現在見ているページおよび総ページ数を格納する変数。
2. FetchボタンをタップしてGETリクエストを行う関数makeGETRequestを実行。
3. makeGETRequest関数:
所定のURLにGETリクエストを行うと同時にProgress Viewを表示。
4. 全ての変数を初期値に戻す関数resetVariables
5. GETリクエストの結果返ってくるデータをDictionary形式でデコードして、必要なデータなどを抽出する関数 (getTotalPages, getListLength, getTitleList, getReleaseDateList, getOverviewList, getPosterPath) を実行。全てのデータを一つのリスト(dataList) に束ねてListViewで表示。また、現在のページおよび総ページ数も表示。
6. 頁送りボタンをタップした時の動作を設定。ページ数が500未満(500頁まで検索可能なので、ここは「以下<=」でもOKだった)の場合、ページ数を1加算し、変数を初期化後、再度GETリクエストを行う。
7. 頁を戻るボタンをタップした時の動作を設定。ページ数が1超の場合に、ページ数を1減少し、変数を初期化後、再度GETリクエストを行う。
(Credit : The Movie DB https://www.themoviedb.org/?language=ja)