Little Strange Software

スマホアプリの開発を行う LittleStrangeSoftware のブログです。

Androidアプリ開発初心者がkotlinでカラーピッカーを作ってみるよ! その10

 どうも!LSSです!

 

 カラーピッカー作成の続き、今回はいよいよデータベースの利用を始めますよ!
「色を保存」ボタンを作ります!

 

 

まずは、activity_main.xmlから始めます!

f:id:little_strange:20191002215657p:plain

 activity_main.xmlをデザイン編集モードで開きます!

 そして、

  1. Paletteの「Layouts」をクリック
  2. 「LinearLayout(horizontal)」をマウスドラッグして、
  3. ↓のように、「btL 明るくする」の下に、LL0からの青い点線が出るような位置で
  4. ドロップ(マウス左ボタンを離す)します。

f:id:little_strange:20191002220009p:plain

 

↓また、追加したLinearLayoutのlayout_widthを「wrap_content」に変えておきます。

f:id:little_strange:20191002220515p:plain

 

さらに、gravityの旗マークをクリックして、「right」にだけチェックを入れてApplyをクリックしておきます。

f:id:little_strange:20191002221047p:plain

 

 

保存するためのボタンを設置します!

 今度はまた左のPaletteから、

  1. 「buttons」をクリック。
  2. 右に出てくるうち「Button」をマウスドラッグで、
  3. 下の、さっき追加したLinearLayoutの配下になるようにドロップ。(↓参照)

f:id:little_strange:20191002221621p:plain

 

 すると、

f:id:little_strange:20191002221802p:plain

こうなりますね。

 

 次に、また画面右のAttributesにて、

  1. 「id」を「btSV」に打ち換え、
  2. 「layout_weight」を「0」に打ち換え、
  3. 「text」を「色を保存」に打ち換え、
  4. 「onClick」を「btSave」に打ち換えます。

f:id:little_strange:20191002222216p:plain

 

 

MainActivity.ktの編集に移ります

「MainActivity.kt」をクリックして、kotlinのコードの編集に移ります。

f:id:little_strange:20191002222720p:plain

 

var i :Int = 0

の行末にカーソルを合わせ、Enterキーを2回ほど押してから、

val sqloh0=SQLoh(this)

と入力します。

f:id:little_strange:20191002224739p:plain

 こんな感じ。

※さっきここで自分はthisを入れ忘れて、次の工程で悩みました^^;。ご注意を!

 

 

 さて、ここでコード編集画面を下のほうにスクロールしていき、

f:id:little_strange:20191002225125p:plain

↑このへんにでも、さっき設置したボタンのonClickのコードを入れていく事にします。

 

↓このコードを入力します。 

fun btSave(v:View){
val dbW=sqloh0.writableDatabase
val cldr=Calendar.getInstance()
var SQLstr=dbW.compileStatement("INSERT INTO COLORSV ( SV , SVTIME ) VALUES ( ? , ? )")
SQLstr.bindString(1,(cl[0]*256*256+cl[1]*256+cl[2]).toString())
SQLstr.bindString(2,cldr.timeInMillis.toString())
SQLstr.executeInsert()
}

※10/3追記!
 ↑のコード一か所間違えていましたので、修正しました!

 

 

  なお、3行目の「val cldr=Calender」を入力する時に、

f:id:little_strange:20191002230523p:plain

↑こんな補完候補が出てきますが、「java.util」を選んでおきます。

 

f:id:little_strange:20191002231203p:plain

 画面上はこんな感じになりますね。

※10/3追記!
 ↑のコード一か所間違えています!
 画像なのでこちらは修正前の状態です^^;;
 正しいコードは↑にあります。
 ちなみに cl[0] → cl[2] という修正です。スミマセン!

 

 ここで一度、試しにエミュレータにビルドしてみます!

f:id:little_strange:20191002231232p:plain

 適当にシークバーを触るか、乱数色を選ぶなどして、「色を保存」ボタンを押してみます。

 まだ、保存された内容を確認するものを用意していませんが、今の時点ではエラーが出なければOK!てことで^^;;;

 

あと1つ、SQLiteを利用したら「お片付け」が必要!

 もうちょっとだけコード触ります!

 

f:id:little_strange:20191002231626p:plain

↑このへんにでも、もうひとつfunを追加しますね。

 

override fun onDe

あたりまで入力すると、

f:id:little_strange:20191002231858p:plain

こんな候補が出てくるので、このonDestroyを選択します。すると、

f:id:little_strange:20191002231958p:plain

自動的に↑のように「super.onDestroy()」が追加されます。

ので、その上に一行、スキマ行をもうけて、

sqloh0.close()

 …と入力しておきます。

 画面は

 f:id:little_strange:20191002232230p:plain

  こんな感じになります。

 

…てなところで、今回はここまでにします。

 次は、保存した色を呼び出すコードを追加したいと思います! 

 

 ではまた!

 次回もよろしくです!!