2018年2月くらいから言われている現象であり、調べた所、アプリのキャッシュがおかしいとか、アプリを再起動する必要があるとか、いろいろなことが言われていますが以下の方法しかありません。
月: 2019年4月
はじめてのAndroidプログラミング 第4版 ソース・正誤表・感想
金田浩明さんの書籍、『はじめてのAndroidプログラミング 第4版』ですが、公式サイトが検索で引っかかりにくいので、かわりにリンクを書いておきます。
Amazonの評価は低いですが、とても良い本だと思います。
優れている点
- 前ページで出た用語でも、そのページで軽く説明してくれるのでページを行き来する必要がない。
- Deprecated対策の解説もある P257
- 入門書レベルでデータベースを扱ってるのは見たこと無い。しかもトレンドのRealmとはありがたい。
- 初版の状態で誤字はありませんでした。(日本語的な誤りはあるのかもしれませんが、プログラムに関する部分でミスはありませんでした。)
こういう入門書は時間が経つと手順通りには動かなくなってしまうものですが、いまなら本の指示どおりに動きますので、急いで学習されたほうが良いと思います。
リンク集
公式サイト
https://www.sbcr.jp/products/4815601140.html
ソースコードダウンロード
https://www.sbcr.jp/support/15129.html
正誤表
まだありません
ログのアウトプット printlnとLog.dの違い
Android / Kotlin
以下のように出力されます。両者ともLogcatウィンドウにもRunウィンドウにも表示されるから、テストのときはprlntlnのほうが手軽かなあ。ちゃんとしたアプリ作成はLogクラス使ったほうがいいと思います。
1 2 3 4 5 |
println("this is println") Log.d("tag","this is log") I/System.out: this is println D/tag: this is log |
Kotlin 複数行のWhen
KotlinではSwitchに代わり、スマートな記法であるwhenが使える。
入門書だと1行処理のWhenの解説しか見かけないので、基本的なことですが、記事にしておきます。
1行のWhenの場合
1 2 3 4 5 |
when(param){ 0 -> println(“zero”) 1 -> println(“one”) 2 -> println(“two”) } |
複数行When →{}でブロックを作るのが正解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
when(param){ 0 -> { println(“zero”) println(“—“) } 1 -> { println(“one”) println(“—“) } 2 -> { println(“two”) println(“—“) } } |
シンプルさが失われるような…… breakが不要なだけましかな。
UIレイアウト デザインビュー 制約ビューが消えてしまった時の対策
制約ビューだけ消えてしまうことがあります。その対応
1.歯車アイコンからFloatingModeにチェックを入れて、フローティングモードにする
2.フローティング状態になったAttributes画面の歯車アイコンから、FloationgModeのチェックを外してドックにくっつける。
以上の動作で制約画面が復活するはず。AndroidStudioの不具合だと思います。
UIレイアウト デザインビュー 項目が消えてしまった時の対策
エミュレーター作成時のシステムイメージ GoogleAPIsについて
Android API 8.1
Android API 8.1(Google APIs)
このように2つあった場合、(Google APIs)付きのほうは、GoogleMap や GoogleDriveのサポートをしているということ。
これらのサービスを使ってアプリを作る場合は、APIs付きのシステムイメージを使わねばならない。
リソースフォルダのv付きフォルダ
AndroidStudio
res/drawable-v24
V24 Android7の時だけ使いたいリソースを入れる所。
基本的には、drawable-vXX フォルダには入れないこと。
同じように以下のような例もある。よほどのことがない限り使わないと思う。いちいち対応してたら管理も大変ですし。
エラー対策 Null can not be a value of a non-null type String
Kotlinにて
Null can not be a value of a non-null type String
原因 StringはNullableでない(Null許容していない)のにNullを入れようとした
“エラー対策 Null can not be a value of a non-null type String” の続きを読む
KotrinでSwiftの ??(ニルコアレーシングオペレーション)/エルビス演算子
前提知識がいろいろ必要なので整理しながら書きます。
エルビス演算子(elvis演算子)
- 一般的に ?: という文字で使われるが、これがエルビス・プレスリーの顔文字に見えることからそう呼ばれる。
( ?: がリーゼントと2つの目に見える。) - 言語ごとに解釈や挙動が微妙に違うので注意。(三項演算子とエルビス演算子を同じものだと書いているサイトもあるので注意。)