ウィジェット編ListView~ListViewをカスタマイズする~

まずは、ListViewの使い方ですが、解説したブログやサイトは無数にあります。今回は、下記HP参照してます。

Android開発でList Viewを使おう! - Qiita

 

なお、配列をつかってListViewに表示する方法が基本ですが、Listを作成してそれをListViewに表示させることもできます。そうすることで、項目の追加・削除もできます。(配列は要素を追加・削除できない)

※ここで作成したコードはGitHubからGitにあげてます。

yuuzaki2000/ListViewDemo1: ListView (github.com)

 

上記HPとは少し方法が違いますが、

「Taskクラス(LocalDate型変数dateとString型変数taskを持つクラス)を作成し、その内容をListViewで表示」したものを上げておきます。

※ここで作成したコードはGitHubからGitにあげてます。

yuuzaki2000/ListViewDemo2: ListView2 (github.com)

 

項目データをデータベースに登録する際にも有用です。作成したクラスをEntityとすることで可能です。

 

登録ボタンを押して、一覧表示ボタンを押すと、画面が遷移して登録した名前のリストが表示されます。

yuuzaki2000/ListViewDemo4: ListView4 (github.com)

※build.gradle(module)の中のdependencies内に下記追記してます。

def room_version = "2.2.6"
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"

 

 

あとは気になったのは下記の点です。

Androidでは、ArrayList型にしておかないと、ArrayAdapterの引数として使えないことに注意する必要があります。

ArrayList<String> arrayList = new ArrayList<>(Arrays.asList(texts));

すなわち、下記のような記載ではだめということです。Javaではよく見かけますが、、、

List<String> lists = new ArrayList<>(Arrays.asList(texts));
 

 

 

 

ウィジェット編TextView~TextViewで複数行を記載する~

TextViewで複数行を記載するにはどうしたらいいか悩んだりすることは一度はあるでしょう。

まず、Javaファイルでコーディングする場合は、StringBuilderやStringBufferを使って文字列を作成する際に、.append("\n")というのを挟めばできます。

 

作成したコードはGitHubからGitにあげてます。

yuuzaki2000/TextViewDemo2: TextView (github.com)

 

 

 

 

そのほかの方法としては、strings.xmlを使う方法でしょうか。

下記HP参照。

TextViewに複数行テキストを表示させる方法 in AndroidStudio - Little Strange Software (hatenablog.com)

ちょっと考えてみた45

Roomデータベースを使う場合、非同期処理内で、DAOインターフェースを使用して、データベースの操作を行う。

非同期処理内での結果を、メインスレッドへ持ってくるためには、AsyncTaskを用いる方法があるが、API30以上で非推奨となっている。

代わりの方法としては、Thread-Runnableを使い、Handler-Messageを組み合わせる方法がある。Handlerのコンストラクタは、引数なしは非推奨であり、Looper.getMainLooper( )を引数にすればよい。

Looperとは何か?これらについては下記に記載があります。

academy.realm.io

ちょっと考えてみた44

Jetpack のどのライブラリでも、Kotlin ベースAPI と Java ベースAPI のリファレンス ページが用意されています。

Jetpack ライブラリは、アプリのさまざまなニーズに応えるために、単独で使用することも、組み合わせて使用することもできます。

  • WorkManager: バックグラウンドでのスケジューリングのニーズに応じます。
  • Room: データ ストレージを永続化します。
  • Navigation: アプリのナビゲーション フローを管理します。
  • CameraX: カメラアプリのニーズに応じます。
  • すべての Jetpack ライブラリの概要をご覧ください。

 

Android Jetpack を使ってみる  |  Android デベロッパー  |  Android Developers