-
前回は、SQLiteのDatatypesについてメモを残しました。そのメモの中に非常に「SQLite」らしい特徴があります。こちらの「データベースの各column(列)に割当可能な5つのType Affinity」です。
TEXT affinity: NULL、TEXT、BLOBクラスの値を格納可能。数値を格納する場合、文字列に変換して格納。
NUMERIC affinity: 全クラスの値を格納可能。TEXTクラスの値を格納する場合、INTEGERか REALクラスへの変換を試み、変換できれば変換して格納。変換できなければTEXTクラスのまま格納。NULL、BLOBクラスの値は、変換せずに格納。
INTEGER affinity: 基本的にNUMERIC affinityと同じ動作ですが、CAST expressionsの場合のみ違う動作となります。
REAL affinity: 基本的にNUMERIC affinityと同じ動作ですが、整数形式の値の場合、小数点クラスにして格納します。
BLOB(かつての名称はNONE)affinity: どんなタイプの値でも変換せずに格納します。
さらっと流していましたが、NUMERIC、INTEGER、REALは、自分のクラスへの変換を推奨しますが、変換できなくても、そのまんま格納してしまいます。いちおう「数値型で入れてね」とお願いはするのですが、数値に変換できない文字列を放り込めば、そのまま保存してしまいます。
さらにBLOBに至っては、とりあえず何でもそのまま格納しちゃいます。こんな感じなので、SQLiteで実際にDBを作成する場合、何も決めないまま、とりあえず作成できてしまいます。
そんなSQLiteでも、他のRDBMS同様にDB作成時の制約を設けることはできます。今回は、その制約周りについてざっくりとメモ。
-
前回、Androidで標準サポートされている「SQLite」に準じたデータベース(以下、DB)を作成するツールを紹介しました。SQLiteのDB作成方法自体は、前回書いたようにとても簡単ですが、その簡単さはSQLite独特のルールによって成り立っているようです。今回は、そのSQLiteのもつ独特なあれこれについて、メモを残しておきます。
本題の前に、SQLiteのバージョンについて書いておきます。SQLiteのバージョンは、大きく2と3に分かれていて、2と3では互換性がないようです。古いシステムで2が採用されているような場合を除いて、3を使うのがよさそうです。(現時点での最新版は、3.8.11.1)以降、SQLiteに関するメモは、SQLite3について記載していきます。
-
Androidも、データベースを扱うことができます。標準でサポートされているデータベースは「SQLite」というオープンソースのRDBMSです。データの保管場所としてサーバを必要とせず、データをファイルとして保存することから、アプリに組み込んで利用されることが多いようです。なお、標準ではサポートされていませんが、Microsoft SQL ServerなどのようなサーバーベースのRDBMSにもAndroidからアクセスは可能です。
今目標としていることは、Androidアプリに一定のデータを持たせておき、そのデータを条件に応じて画面に表示させることです。なので、データベースをAndroidで作成したり、更新することはなく、あらかじめパソコンでデータベースを作成して、アプリに組み込みできればと考えています。今回は、表示の元になるデータベースをパソコンで作るところをメモします。
-
シルバーウィークと、その後ひとつのメモ書きを挟んで、かなり時間が経ってしまいましたが、前々回、ListViewを使ってリストを表示する方法を紹介しました。その最後に
android:entries="@array/データ群の名前"
を利用して、ListViewをレイアウト要素へ置き換える方法を紹介しましたが、android:entries="@array/データ群の名前"
には、さらに応用を利かせた使い方(こっちの方が本来の使い方かな)があったので、今回は、その使い方についてメモを残します。とか書きながら、前々回の記事を見直しておこうとブログページ開いたら、剛力さんがうちのサイトにいらっしゃるじゃありませんか!
こちらが記念のスクリーンショット。アイコン見切れてますが剛力さんとのツーショットです。 というわけで、あらためてメモをどうぞ
-
前回、といってもシルバーウィークを挟んで、日にちが空いてしまいましたが、ListViewを使ってリストを表示するメモの最後で、「実行ファイル内にListViewを記述したサンプル」と「ListViewをレイアウト要素へ置き換えたサンプル」で、同じリストを表示しているのに画面表示させると、見た目(画面レイアウト)が違っていたのですが、ListViewのソースコードを調べていて、なんとなく理由が分かったので、今回メモしておきます。
メモ:ListViewのデータを実行ファイルの外に置く - Mono Works
その理由は、ListViewをレイアウト要素へ置き換えたことで「ListView」がもつレイアウト設定が反映されたという単純なものでしたが、これだけでは、少し前の自分には理解できないので、もう少し説明しておきたいと思います。
-
前回、ListViewを使ってリスト表示する際に、表示する「データ」を実行ファイルの中に記述していましたが、今回は、この「データ」部分を実行ファイルの外に記述する方法について、メモしておきたいと思います。
メモ:ListViewと ArrayAdapterでスクロールするリスト表示 - Mono Works
さっそくですが、こちらが前回サンプルで作った実行ファイルです。
-
以前、ビューをページ内に配置する方法の例として、LinearLayout と RelativeLayoutについて書きました。これらのレイアウト方法は、ひとつの画面に決まったビューのみ表示する場合にシンプルで良い方法だと思います。
メモ:ビューの配置 - LinearLayout と RelativeLayout - Mono Works
今回は、複数のデータを並べて表示して、もしデータが多くて画面に収まらない場合はスクロールさせて表示するといったことが可能になるListViewについて調べてみました。
Mono Works
チラシのすきま
カテゴリー:Post