diadia

興味があることをやってみる。自分のメモを残しておきます。

kotlin

Fileクラスについて

ドキュメント File | Android Developers メモ An abstract representation of file and directory pathnames. と書いてあるようにファイルまたはディレクトリのパスを表現するもののようだ。

Android "パーミッションの解除" について

パーミッションの種類 Androidではパーミッションは2種類存在する。 Normalパーミッション、Dangerousパーミッションに区別される。 Dengerousパーミッションのリスト CALENDAR CAMERA CONTACTS LOCATION MICROPHONE PHONE パーミッションリストを示す資料 …

マテリアルアイコンを作成する

vector iconからマテリアルアイコンを生成する。 マテリアルアイコンはAPIレベル21未満は使えない使用になっているらしい。 21未満でもこれを使えるようにはできるらしい。それはどのような手続きを踏むのか。 それはサポートライブラリを使うとAPIレベルが…

エラー:java.lang.IllegalArgumentException: No view found for id がFragment.kt内で生じる件

エラー内容 java.lang.IllegalArgumentException: No view found for id 解決に役立った資料 Android Fragment no view found for ID? - Stack Overflow エラーが生じた環境 フラグメントを複数生成し、生成したフラグメントを起動する際にエラーが生じた。…

フラグメント間でデータを渡す方法

フラグメントでデータを渡す方法 Applicationを継承したcompanion objectを使う方法 https://github.com/chiaki1990/FragmentSample1 あらたなインターフェースを別クラスとして準備する方法 https://github.com/chiaki1990/FragmentSample2

フラグメントのまとめ

フラグメントを外す場合のコード フラグメント.kt内で以下のコードを実行すると、Activityに対してフラグメントを外す事ができる。 それはつまりActivityのframeLayout部分からフラグメントが削除され白い空間となる。 fragmentManager?.beginTransaction()?…

エラー対処:java.lang.IllegalStateException: menu.findItem(R.id.action_settings) must not be null

エラーコード java.lang.IllegalStateException: menu.findItem(R.id.action_settings) must not be null エラーが出た環境 フラグメントを使用してメニューを描画する場合にエラーが発生した。フラグメント.ktファイルにはonCreateOptionMenuをオーバーライ…

Android メニュー実装のまとめ

俯瞰 Androidのメニューを実装するとは、画面上部にあるツールバーを実装することを指す。 このツールバーを実装するに際し、Activityをどう作成するかによって多少実装方法が変わってくるので注意する。 Activityをどう作成するかとは、具体的にはBasic Act…

Sublime text 3にKotlinのシンタックスハイライトを付ける

参考 https://www.kotlintips.com/kotlin-support-in-sublime-text/ やり方 Toolsの Install Package Controlを選択する。 *最初の状態のSublime Text 3ではInstall Packageコマンドが使えない。これを使えるようにするために行う。 Control + Shift + Pを押…

日付データをバリデーションする方法

入力された日付データをバリデーションする方法を記述する。 バリデーションする内容:現実に存在しない日付データにはfalseを返す。 fun checkInputDate(inputDate: String) :Boolean{ try{ val format = SimpleDateFormat("yyyy/MM/dd") // SimpleDateForm…

DatePickerの実装について

ダイアログ | Android デベロッパー | Android Developers Dialogクラスのサブクラスとして、 AlertDialog, DatePickerDialog, TimePickerDialogが存在する。 これらのサブクラスを使うためにコンテナとしてDialogFragmentを実装する。

フラグメントでオプションメニューを実装する

参考 FragmentでActionBarを指定したい! - Qiita 実装の概要と注意点 編集するファイルは、フラグメントが紐付けられるアクティビティ.ktファイルとフラグメント.ktファイルである。 両ファイルともにonCreateOptionsMenuをオーバーライドする。またフラグ…

EditTextをマテリアルデザイン化する

https://developer.android.com/reference/com/google/android/material/textfield/TextInputLayout https://developers-jp.googleblog.com/2015/07/android-design-support-library.html 要はTextInputLayoutビューを実装すれマテリアルデザイン化すること…

RecyclerViewまとめ

メモ 今までEmptyActivityからリサイクラービューを実装してきたが、フラグメントからリサイクラービューを実装する方法の方が割と楽に実装できることが分かった。これについてはまだブログに記録を残していないので時間があるときに作成する。 インストール…

EditTextにplaceholderを設ける

参考 How do I set a placeholder on Edittext in Android and use it if no input has been typed by user? - Stack Overflow EditTextで、ヒント文字列を設定する | mokelab tech sheets Android開発ではHint属性と呼ぶ HTMLで使われるplaceholder属性は、…

EditTextまとめ

EditTextの入力を受け付けなくさせる方法 - diadia EditTextにplaceholderを設ける - diadia EditTextをマテリアルデザイン化する - diadia

retrofit multipart送信を行う

コンテンツ Multipart通信における知見 関連記事 参考 Multipart通信における知見 実装概要 実装ではInterfaceの設定とretrofitでinterfaceメソッド実行を行う。 Interfaceについて //Itemオブジェクトを生成する //認証ユーザーのみリクエスト送れる仕組み…

retrofit Requestヘッダーを参照する方法

例えばRequestヘッダーのAuthorizationという項目がきちんと送信できているか確認したいとする。 retrofitでは以下の様ににすればヘッダーの内容を確認することができる。 fun logInByAuthToken(authToken:String) { val retrofit = Retrofit.Builder() .bas…

ListView,Spinnerとadapterについて

ListViewとadapterの関係 ListViewの各要素を表示させるには、strings.xmlに <string-array name="japanese"> <item>あいうえお</item> <item>かきくけこ</item> <item>さしすせそ</item> </string-array> を記述して、レイアウトファイルにandroid:text="japanese"みたいなことをして各要素を表示する事ができる。 この他に要素を表示する方法とし…

AccountManagerでアカウントを追加する

アカウントを追加 AccountManagerにはアカウントを追加する方法が2種類存在する。 メソッドは以下の通り。 AccountManager#addAccountメソッド AccountManager#addAccountExplicitlyメソッド addAccount()メソッドは、アカウントを追加する時にユーザーにア…

django-rest-frameworkのユーザー認証を実現させる

https://www.django-rest-framework.org/api-guide/authentication/ https://blog.sakaki333.com/blog/view/78 はじめに この記事はdjnagoをバックエンドとしてandroidアプリケーションを作成することを前提する。 androidアプリケーションのユーザー認証周…

retrofit エラー対処

エラー1 java.lang.IllegalArgumentException: @Field parameters can only be used with form encoding. 上記のエラーメッセージが出る場合には、インターフェースに@FormUrlEncodedアノテーションを付け忘れている可能性がある。 つけて再実行する。 inter…

Retrofitまとめ

コンテンツ 公式ドキュメント インストール 使い方イメージ 関連記事 参考 1. 公式ドキュメント https://square.github.io/retrofit/ 2. インストール implementation 'com.squareup.retrofit2:retrofit:(insert latest version)' implementation 'com.squar…

RecyclerViewについて

RecyclerViewはなんのためにあるのか? 参考: https://ithelp.ithome.com.tw/articles/10203735 https://developer.android.com/guide/topics/ui/layout/recyclerview RecyclerViewは多量のリストデータセットを表示するためにあるようだ。 リサイクラービュ…

EditTextの入力を受け付けなくさせる方法

EditTextの入力機能を停止させるには、isEnabledを使えば良い。 editText_obj.isEnabled = false https://developer.android.com/reference/kotlin/android/widget/EditText isEnabledアトリビュートは、親クラスのViewから継承されたアトリビュートである。…

Kotlin Radioボタンを実装する方法

Radioボタンを使う際のイメージ RadioGroupを使う。 リスナーについては2つ考え方がある。 ラジオボタンに実装するのではなく、RadioGroupにリスナーを実装する方法と、通常のボタンにリスナーを実装する方法である。 RadioGroupにリスナーを実装する方法は…

エラー:Class "***" must contain at least 1 persistable field. Realm

Realmで以下のエラーが発生した。 Class "***" must contain at least 1 persistable field. エラー原因コード import io.realm.RealmObject //モデルクラスの作成 class WordDB:RealmObject() { //フィールドの設定 var strQuestion:String = ""; var st…

Realmの使い方について

メモ 参考: https://realm.io/docs/java/6.0.2/ [Android] SQLiteをやめてRealmを使ってみた イメージ ORM?みたいに扱うイメージ。 djangoのModelを定義するように、RealmObjectを継承したクラスを定義し、メソッドでUpdateしたり参照したりする感じ。 実装…

android: Viewの表示と非表示を切り替える方法

ソース: https://developer.android.com/reference/kotlin/android/view/View.html#android:visibility Viewクラスのアトリビュートにvisiblityがある。これを使えば例えばボタンを消したりつけたりする事ができる。 val btn = findViewById<Button>(R.id.testButton</button>…

kotlin : 画面遷移先でintentに格納データを取り出す方法

画面遷移先でintentに格納したデータの取り出し方 intentからbundleオブジェクトを取得し、そこから目当てのデータを取り出す。 Intentで画面遷移したデータを取得する intentインスタンスにデータが格納されているので、getStringExtra()メソッドを使って取…