75才からのモバイルアプリ作成

MIT App Inventorを使ったアプリ作成

MIT App Inventorで遊ぶ (Journal アプリ3 U / REST API)

2024-03-28 07:01:36 | 日記

Journalアプリのデータ更新については、試行錯誤の結果、

1. ListViewで選択されたデータの中から日付データを抽出し、全体の日付データリストの中での同データのindexを取得

2. 一方、すべてのIDを格納しているtag list より上記indexに該当するIDを取得

3. 同IDをキーにして、更新したデータと共にPUTリクエスト(上書き)を行う

試行錯誤の途中ですべてのデータを削除してしまったりと時間がかかったが、どうにか解決策が見つかった。

実行画面:

今回は、最終のアプリという形ではなく、実験する過程をキャプチャーした。

実験を画面(静止画)で見ていくと。。。(上記実行画面では、円山公園を大友古墳に変更)

アプリを立ち上げた時            Fetchボタンをタップしてデータを取得

    

ListViewより更新したいデータを選択     Articleの内容を変更。「どこかに。。。」を「円山公園に。。。」に変更し

                      Updateボタン(更新ボタン)をタップ

    

再度、Fetchボタンをタップし、更新後の

最新のデータを取得

スクリーンのデザイン:

Updateボタンと確認用のLabel3つを追加しただけ。

     

プログラム(ブロック):

更新の部分のみ。

1. keyDate => 更新対象データ(ListViewでタップしたデータ)の日付

dateIndex => 更新対象データの日付の日付リストの中でのindex(このindexをキーにして更新対象データのIDを取得)

2. 更新対象のデータをListViewでタップして選択。=> Save及びFetchボタンを無効にする。(後述のprocedure "selectListView"を実行)=> 更新対象データは、split ブロックにより日付(date)、タイトル(title)、記事内容(todo)の3つに分解。=> タイトルはtitelTextBox、記事内容はtodoTextBoxに表示。

dateList(取得したデータの日付のリスト)の中での日付(date)のindexを取得。=> 同indexに該当するtagList(取得したデータのIDのリスト)のIDを取得(これが更新対象データのID)

testLabel1及びtestLabel2への表示は確認のためのもの。

3. 上記で取得したID (updateKeyTag)をターゲットにして、date, title, journal(記事内容)を上書きする(PUTリクエスト)。

4. testLabel3に確認のために更新後のデータを表示する。ちょっとネーミングが悪いが、procedure "updateData" によりSave及びFetchボタンを有効にして、Updateボタンは無効にする。

*****************************

update(更新)ができると、delete(削除)も当然可能と思う。

いくつか問題は残っているが、次回は画面の体裁を整え、その他微調整なども行いたい。

 

 



コメントを投稿