Revisiting Android Spinners

Photo by Emile Perron on Unsplash arrays.xml arrays は string-array で設定します. integer-array でやる場合は自分で spinner の xml を書かないといけなくなると思います. <resources> <string-array name="message_count"> <item>100</item> <item>200</item> <item>500</item> <item>1000</item> <item>2000</item> </string-array> </resources> 使う側 string-array でやれば android.R.layout.simple_spinner_item と android.R.layout.simple_spinner_dropdown_item が使えるので楽です. 逆に android~ を使わない場合は自分で ArrayAdapter を作成して Spinner#setAdapter() すれば良さそうです.

Using Firebase Cloud Messaging and Analytics without google-services.json

Photo by Daniel Sturgess on Unsplash イケてない GitHub に上げれないので CI/CD しようと思ったときめんどくさい apply plugin: ‘com.google.gms.google-services’ を app/build.gradle の 1 番下に書く必要がある FCM と com.google.gms.google-services の仲が悪い(らしい) ということで環境変数に APP_ID などを設定して FCM と Analytics を使う方法について書いていきます.

Getting values from other Views in Android Data Binding

Photo by Henri L. on Unsplash <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" > <data> <variable name="viewModel" type="example.MyViewModel"/> </data> <android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp" > <android.support.design.widget.TextInputEditText android:id="@+id/edit_name" android:layout_width="0dp" android:layout_height="wrap_content" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" /> <Button android:id="@+id/button_ok" android:layout_width="0dp" android:layout_height="wrap_content" android:onClick="@{(v) -> viewModel.action(editName.getText().toString())}" app:layout_constraintTop_toBottomOf="@+id/edit_name" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" /> </android.support.constraint.ConstraintLayout> </layout> ポイント Java or Kotlin 側で使うように CamelCase で view の ID を書く

Using Kotlin's ReadWriteProperty for modern Android Preference handling

Photo by Louis Tsai on Unsplash Kotlin の ReadWriteProperty を使って Delegate して Preference をいい感じにするやつを使ってみました. ちなみに ReadWriteProperty は以下のように定義されています. interface ReadWriteProperty<in R, T> ReadWriteProperty - Kotlin Programming Language ReadWriteProperty 例えば int を Preference に入れる ReadWriteProperty

When told the APK can't be installed

Photo by Fahim Muntashir on Unsplash 最近 issue がとんできてて,そのときになんじゃこれ~と思ったのでメモ. きた issue は以下. Parsing error · Issue #9 · yuzumone/Recordachi 解決策 APK を作成する際,Signature Versions を V1 と V2 にチェックを入れる.

Created an Android library for multi-line ellipsizing

Photo by Volodymyr Dobrovolskyy on Unsplash Android の TextView で複数行 Ellipsize してタップすると全文表示するようなライブラリを作ってみました. yuzumone/ExpandableTextView 動作は下の感じです. 作った pic.twitter.com/IcyLLXjG9P — ゆずもね (@Yuzu_037) June 7, 2017 もともとすでに実装はしていて,今も Twltrus の Reply 送信画面では上の動作のような感じにはなっていました. Twltrus の実装では Fragment で boolean を持っていて TextView の ClickListener のところで Ellipsize する・しないを切り替えていました. CustomView にしたほうが TextView の状態を Activity や Fragment で気にしなくてよくなるよなというところです. あとは Android が正式に Kotlin をサポートということで Kotlin でライブラリを作ってみました.