2021年2月28日日曜日

Xml declaration should precede all document contentのエラーになった時の対応

 Androidのレイアウトのcodeを書くとき、
「Xml declaration should precede all document content」というエラーになった
当然このまま実行してもAAPTでビルド失敗
MyApplication\app\src\main\res\layout\activity_main.xml:1: AAPT: error: XML or text declaration not at start of entity.
なので対応方法を書く。

2021年2月26日金曜日

ラジオボタンで選択中の文言を取得する

Androidでラジオボタンを使う際
選択中のラジオボタンの情報がほしくなることがある。
方法として
  • 公式通り、各ラジオボタンのクリック処理を実装し、 押されたタイミングで情報をローカル変数に保持しておく
  • 各ラジオボタンにisChecked()を実行していき、チェックONのラジオボタンを探す
  • RadioGroupのOnCheckedChangeListenerで変化を監視
どれもローカル変数を用意したり、全Viewチェックしたりで効率的でない。
今回はRadioGroupのAPI仕様を見てたら、丁度良さそうなのがあったので紹介。


Androidのラジオボタンを横並びにする

Androidアプリ開発でRadioButtonを使用する際
選択を変更したとき、他のチェック項目を自動で外す動作をさせるには
RadioButton達をRadioGroupにまとめておく必要がある。

しかし、RadioGroupに入れるとRadioButtonの配置が縦並びになってしまうので
横並びにする方法を記載する。

2021年2月23日火曜日

AndroidでLatex(数式)を扱う方法

 Androidの標準機能では数式を扱うことはできないので、外部ライブラリを探してみた。
Latexで数式が書けるライブラリを発見したので、使い方まとめ

2021年2月21日日曜日

SharedPreferencesで日時保存と取り出し方

Android開発で、SharedPreferencesを用いて日時を保存して、
取り出す際に日付型で取得する方法のまとめ。

日付を扱うクラスはDate、Calendar、LocalDate、LocalDateTime、LocalTimeがよくあるかな
と思うのでこの辺をまとめてみます。

2021年2月18日木曜日

app/build.gradleのプラグインの構文が変わっていた

Kotlin Android Extensionsを入れようとしたら、
app/build.gradleのプラグインの構文が変わっていたので備忘録


■ 以前(2020/12/04に作ってたプロジェクトはこっちだった)
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions' // 追加プラグイン


■ 今(2020/12/13以降に作ってたプロジェクトはこっちだった)
plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-android-extensions' // 追加プラグイン
}

2021年2月17日水曜日

SharedPreferencesでのcommitとapplyの違い

Androidアプリ開発での簡単なデータ保存で用いるSharedPreferences
データ保存する際に、「commit」と「apply」の二種類存在していて、どちらを使えばいいのか検討したく、違いについて調べてみた。

2021年2月16日火曜日

Viewの表示非表示状態を保存する

AndroidでTextViewなどのViewの表示切替を行った後、次回のアプリ起動でそのView表示可否状態を維持したいときの保存はSharedPreferencesが便利です。


2021年2月14日日曜日

パーミッション設定せずに外部ストレージ保存する方法

Androidスマホでデータを取って、PCと接続して抜き出す。
これを繰り返すような作業をするとき、端末内にファイル書き込みする手が有力だ。

その際に直面するのが、どこにファイル保存するか。
内部ストレージになら簡単に保存できるが、PCへファイルの抜き出しが面倒...
逆に外部ストレージに保存するなら、Androidのシステム上、Manifestへパーミッション設定、動的にラインタイムパーミッションの実装が必要で面倒...しかも外部ストレージアクセス法がOSバージョンによって異なるのも厄介。

なので、今回は
パーミッション設定せずに外部ストレージ保存する方法を書き残しておく。


2021年2月6日土曜日

ViewのVisibility(表示)の違い

AndroidのViewの表示状態(Visibility)は「VISIBLE, INVISIBLE, GONE」の三種類ある。
VISIBLEはわかりやすいが、INVISIBLE, GONEは共に非表示を意味し、その違いがわかりにくいのでまとめておく。


Android11にUpdateしたらUSBデバッグできなくなった

OSをAndroid11にUpdateしたら、PCと端末をSUB接続してもPCが端末を認識しなくなった。
コマンドプロンプトを起動させて、「adb shell」を打つと以下のエラー
>adb shell
error: device unauthorized.
This adb server's $ADB_VENDOR_KEYS is not set
Try 'adb kill-server' if that seems wrong.
Otherwise check for a confirmation dialog on your device.