rokkonet

PC・Androidソフトウェア・アプリの開発・使い方に関するメモ

android開発 ダイアログのOKボタンを押しても条件によってはダイアログを開いておく(AlertDialog , DialogFragment)

2021 Oct. 10. 出典 Android Dialog/AlertDialog getButton NullPointerException | Lua Software Code 概要 AlertDialogのgetButton()により、OKボタン、Cancelボタンのインスタンスを取得する DialogFragmentのonStart()にokButton.setOnClickListener { }…

android開発 Dialogのデータを呼び出し元のActivityに渡す(独自リスナー利用)

2021 Oct. 17. 2021 Oct. 03. 出典 【Kotlin】DialogFragmentからActivityへ値を渡す - Qiita 手法 呼び出し元Activityにデータを渡す抽象メソッドを持つインターフェースをダイアログクラスに組み込む。 class MyDialogFragment: DialogFragment() { public…

arch linux系 manjaro linux wifiを固定IP設定する

2021 Oct. 02. 出典 netctl - ArchWiki netctlをインストール 暗号化wpaパスフレーズを対話形式で作成 # cd /etc/netctl # wifi-menu -o /etc/netctl/wlp0s18f2u3-mywifiができる /etc/netctl/wlp0s18f2u3-mywifi Description='Automatically generated prof…

manjaro linxu(arch linux系) netctlによる固定アドレスwifi設定でのDNS設定

2021 Oct. 02. /etc/netctl/wireless-wpa-staticのDNS設定は、アドレスをカッコで囲む/囲まないのどちらも試したほうがよい。 DNS=('192.168.1.1') DNS='192.168.1.1' DNS=('8.8.8.8') DNS='8.8.8.8' DNS=('8.8.8.8' '192.168.1.1') DNS=('192.168.1.1' '8.…

android開発 DefaultSharedPreferences Android 10(API level 29)以降での設定

2021 Sep. 26. 出典 sharedpreferences - PreferenceManager getDefaultSharedPreferences deprecated in Android Q - Stack Overflow DefaultSharedPreferencesの利用は、Android 10(API level 29)以降は次の設定を要する build.gradle(modle:app) depend…

android開発 build.gradle(module:app) implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"は不要

2021 Sep. 26. 出典 kotlin-stdlibの依存関係をgradleに書く必要はなくなりました - 縁側プログラミング kotlin 1.4.0以降ではbuild.gradle(module:app)に次の設定は不要。 dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_vers…

android開発 kotlin EditTextへの文字列のセットにはsetText()を使う

2021 Sep. 23. EditTextへの文字列のセット val str: String = "abc" (NG) editTexr01.text = str // 「EditableにStringを代入しようとしている」とのエラーになる (OK) editTexr01.setText(str)

android開発 画面回転後のActivityにおいてLiveDataによるデータ更新を防ぐ

2021 Sep. 18. 状況 ViewModel内のLiveDataの値に従ってActivityで音楽再生するようにしていると、画面回転によって意図しない音楽再生となった時の対処 概要 Activityのcreateが直前にdestroyされたことによるものなのかどうかを示すフラグ変数を持つ。 onS…

android開発 ViewModel コルーチンで非同期ワーカースレッド内での処理結果をBoolean値で取得する

2021 Sep. 17. 概要 下記コード例では、 getConnectionSmb()において、非同期ワーカースレッドでSMB接続を行うconnectSmb(): Booleanの結果を取得している。 getConnectionSmb()内でviewModelScope.launch(Dispatchers.IO) { }を利用し、その中でconnectSmb(…

jcifs-ng SMBサーバーへの接続の成否確認

2021 Sep. 17. SmbFile#list()で例外が発生するかどうかで確認できる。 接続先パスがファイルでもディレクトリでも同じように動作した。 SmbFileのコンストラクト時に接続成否を把握できなかった。 サンプルkotlin androidコード fun connectSmb(): Boolean …

android開発 SMBサーバーもしくは端末内からランダムに1つの音声ファイルをストリーミング再生する

2021 Sep. 24. 2021 Sep. 16. 概要 SMBサーバーからランダムに1つの音声ファイルをストリーミング再生する。 SMBサーバーにつながらなかったら、android端末の外部共有ストレージからランダムに1つの音声ファイルをストリーミング再生する。 再生にはサード…

SMBサーバーからランダムに1つの音声ファイルを取得するkotlinコード

2021 Sep. 18. 2021 Sep. 12. SMBサーバーへの接続にjfite-ngを利用する。 data class AudioFileProperty(val smbPath: String, val fileSize: Long) val audioExtension: String = "\\.mp3|\\.wav|\\.aac|\\.au|\\.gsm|\\.m4a|\\.ogg|\\.flac" /* * ランダ…

android開発 URIからファイルパスを取得する

2021 Sep. 12. 出典 Android: Files: Unable to get file path from content URI when file is selected from RECENT section in file browser - Stack Overflow fun getPathFromUri(context: Context, uri: Uri): String? { // DocumentProvider if (Build.…

android開発 Intentで起動するアプリを指定する

2021 Sep. 12. Intent#setPackageでアプリを指定する VLCメディアプレーヤーを指定したインテント例 val audioIntent = Intent() audioIntent.action = Intent.ACTION_VIEW audioIntent.setDataAndType(uri, "audio/*") audioIntent.setPackage("org.videola…

android開発 TextView Do not concatenate text displayed with setText. Use resource string with placeholders.

2021 Sep. 11. 事象 TextViewへのsetText()の引数に、変数・式といったリテラル以外を含む式を入れると"Do not concatenate text displayed with setText. Use resource string with placeholders."と警告される。 対応 コードではなく、Stringリソース(R.st…

android開発 kotlin コルーチン内でのThread.sleep( )はコルーチン内でsleep( )を実行したスレッドを指定時間停止する

2021 Sep. 09. 下記コードではワーキングスレッド(Dispatchers.Default)が5秒間停止する。 viewModelScope.launch { withContext(Dispatchers.Default) { Thread.sleep(5000L) } } 参考ページ Kotlin Coroutine 入門1: 起動と suspend - Qiita

kotlin 文字列の一番後ろのピリオド以降に指定した正規表現文字列が含まれていればtrueを返す関数

2021 Sep. 06. /* * target文字列の一番後ろのピリオド以降にconditionStr正規表現文字列が含まれていればtrueを返す */ private fun isMatchTail(target: String, conditionStr: String): Boolean { // target中の一番後ろのピリオド(ファイル拡張子の区切…

android開発 SMBサーバーの音声ファイルをインテントを使ってアプリでストリーミング再生

2021 Sep. 06. 概要 ViewModelを使ったワーカースレッド内でSMBサーバーに接続する。 SMBサーバーへの接続にはjcifs-ngを利用。 ViewModelのLiveData機能でSMBサーバーファイルのファイルパスをメインスレッドに渡す。 メインスレッド内で、SMBサーバーファ…

android開発 ViewModel、LiveData、jcifs-ngを使ったSMBサーバーからのファイルダウンロード、進捗プログレスバー表示

2021 Sep. 05. 2021 Sep. 04. インストールしたandroid端末 android バージョン 10 コンパイル環境 compileSdkVersion 30 minSdkVersion 24 targetSdkVersion 30 android studioのプロジェクトのapp/libsにjcifs-ngライブラリを配置 jcifs-ng-2.1.6.jar http…

android開発 LiveDataの利用パターン

2021 Sep. 03. ViewModelクラス内でLiveDataを設定する 各LiveData対象について、書き換え可能なMutableLiveDataと読み込み専用のLiveDataの2つの変数を作る。 private val _FOO: MutableLiveData by lazy { MutableLiveData() } val FOO: LiveData get() = …

android開発 ViewModel内のコルーチン内の結果でActivityの動作を決めるには。Boolean型suspend関数の結果をActivityに渡す方法

2021 Sep. 05. 2021 Sep. 03. 参考ページ android ViewModelScopeコルーチンでメインスレッドを停止する方法は? - スタック・オーバーフロー コルーチンのlaunchブロック内のデータをlauchブロック外に渡すことはできない。 コルーチン内の結果で返り値を決…

jcifs-ngによるSMBサーバー接続認証

2021 Sep. 03. 2021 Aug. 31. Up-to-date val prop = Properties() // java.util.Properties prop.setProperty("jcifs.smb.client.minVersion", "SMB202") prop.setProperty("jcifs.smb.client.maxVersion", "SMB300") val baseCxt = BaseContext(PropertyCo…

android開発 ViewModelScopeコルーチンの利用

2021 Aug. 28. build.gradle(module:app)への設定 dependencies { implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0-alpha03" } viewModelScope のデフォルトCoroutineDispatcherはDispatchers.Main viewModelScope のデフォルトの Corout…

android開発 ViewModelを引数付きで生成・初期化する

2021 Aug. 29. 2021 Aug. 28. 概要 ViewModelを継承した引数付きクラスを定義する ViewModelProvider.Factoryを継承した、ViewModelの引数付きインスタンスを生成するためのクラスを定義する MainActivity内でViewModelProvider.Factoryの前記サブクラスのイ…

apply plugin: 'kotlin-kapt' build.gradle(module:app)内の記述場所

2021 Aug. 23. 次の記述で動いた plugins { id 'com.android.application' id 'kotlin-android' } apply plugin: 'kotlin-kapt' 次の記述ではFailedとなった apply plugin: 'kotlin-kapt' plugins { id 'com.android.application' id 'kotlin-android' }

LinuxやWindowsのブラウザでのページURLのメール送信・共有

2021 Aug. 21. スマホでは、共有機能で、ブラウザで開いているページをメールアプリに簡単に送ることができる。 LinuxやWindowsには共有機能がない。 Firefoxなら、「メニュー-> IDメールアドレス -> 1個のタブを端末に送信」でまずスマホに送り、スマホのFi…

Markdown書法での不等号の表現

2021 Aug. 19. 「"4"と"空白文字"と"アンド記号"と"L"と"T"と"セミコロン"と"空白文字"と"5"」で 4 < 5 アルファベットは大文字でも小文字でもよい。 アンド記号(アンパサンド)とセミコロンにはさまれたアルファベットで各種特殊文字を表す。

kotlin Resultクラスによる例外処理

2021 Aug. 19. 例外を補足するrunCatching { }の結果はResult<T>オブジェクトに格納される。 Resultのメソッドで例外発生有無を判定したり、処理の返り値としてResult<T>に格納されたTクラスのインスタンスを取得したりできる。 参考ページ 【Kotlin】try-catch が</t></t>…

firefoxでのマウスのスクロール量を変更する

2021 Aug. 15. 出典 「imwheel」でマウスホイールのスクロール移動量(スピード)を大きく | Pagent about:configでmousewheel.default.delta_multiplier_yの値を変更する

android開発 jcifs-ngで接続したSMBサーバーファイルをandroid端末にコピーする

2021 Aug. 15. /* * リモートのSMBファイルをandroid端末にコピーする * コピー先は、android端末の外部ストレージのアプリキャッシュ領域 * smbFile コピー元リモートのSMBファイル * 返り値 コピー先ファイル */ private fun cpSmbFile2android(smbFile: S…