365連休

にわかのandroidとかの開発メモ。

サンプルコード

Android Studio Giraffe / Fragment及びDialogFragmentと通信する方法に関する考察

FragmentResultListenerは原則使わない方がいい。 DialogFragmentは呼び出し元のActivityやFragment自体にListenerを実装させ、結果を処理する方式がベスト。 DialogFragmentを部品ではなく機能として使用することで、結果を返さなくて良くなり、呼び出し元…

Android Studio 3.6 ワーカースレッドとしてHandlerThreadを使う

Androidの非同期処理にAsyncTaskやExecutorを使う事があるが、ワーカースレッドを作りworkerHandler.post()で実行する方法もある。 最近のマイブーム。 HandlerThreadはThreadを継承しているため、newしてstart()すれば、別スレッドでお手軽非同期処理ができ…

Excelの"取得と変換"(Power Query)でオープンデータを読み込む😎

Excelの"取得と変換"(Power Query)でオープンデータを読み込む実験。

Android Studio 4.1 と Google Cloud Platformで無料クライアント・サーバアプリを構築してみる

Google Cloud PlatformはAndroidアプリと連携する無料サーバになり得るのか実験してみた。Android Studioだけで開発する縛りプレイ。

Android Studio 4.1 Vertical SeekBar 縦シークバーの実装サンプル

レイアウトXMLでrotateとかをいじって実装していたが、コンテナの相対サイズで配置することが困難なため、AppCompatSeekBarを継承してVerticalSeekBarを実装した。 前提 minSdkVersion 21 implementation 'androidx.appcompat:appcompat:1.2.0' ソースコード…

【解決】Androidアプリをストアからインストールすると、Navigationのタイミングで、必ずjava.lang.RuntimeException Unknown animation name: xが発生し異常終了する。

前提条件 App Bundle使用 minifyEnabled true shrinkResources true compileSdkVersion 29 minSdkVersion 16 targetSdkVersion 29 multiDexEnabled true androidx.navigation:navigation-fragment:2.3.2 androidx.navigation:navigation-ui:2.3.2 FragmentCo…

Android Studio 4.1 難読化をやめる。ProGuard使います。

App Bundleでリリースしたものの、Navigationのタイミングで即死するトラブルが発生。 Play Consoleのクラッシュログは以下の通り。 java.lang.RuntimeException: at android.view.animation.AnimationUtils.createAnimationFromXml (AnimationUtils.java:16…

Javaでfinal宣言されたミュータブルオブジェクトをメンバに持つクラスはcloneできない

以下、私見です。 ミュータブルはCollectionなどの事、イミュータブルはStringなどの事 Javaのcloneはオブジェクト構造のコピーが作られる。 構造体のコピーみたいな感じ。 Javaにおいてプリミティブ値は参照を持たないから値がコピーされ、 オブジェクトは…

Android Studio 3.6 Navigationで複数画面のPreferenceFragmentを使用する方法

設定.xmlのPreferenceタグにFragmentを指定すると別なPreferenceFragmentを起動できるが、Navigationを使用している場合うまく動作しない。 ちゃんと確認していないが、Navigationと複数画面のPreferenceの食べ合わせは非推奨らしい。 そこで、Navigationの…

Android Studio 3.6 ディレクトリを表すUriオブジェクトがあるか?

ディレクトリを表すUriオブジェクトはあります。

【Self Stack Overflow】Javaで多重継承を行う方法

自問 Javaでクラスの多重継承を行う方法を教えてください。 ベストアンサー Javaで多重継承はサポートされない。 public static class H { String h = "hour"; void echo(){ System.out.println(h); } } public static class O { String o = "o'clock"; void…

【Self Stack Overflow】Javaで複数の戻り値(タプル)を持つメソッドを定義する方法

自問 Javaで複数の戻り値(タプル構造)を持つメソッドを定義する方法を教えてください。 ベストアンサー Javaのメソッドは1つの「プリミティブデータ型」または「クラス」しか返すことができない。 そこで、複数の値を持つクラスを返す方法を考える。 Java1.…

【Self Stack Overflow】Javaで16進数文字列を正しく数値及び数値型へ変換する方法

自問 Javaで16進数文字列を正しい数値及び数値型へ変換する方法を教えてください。 以下のコードはエラーになります。 Integer.parseInt("ffffffff", 16); //throws NumberFormatException Short.parseShort("ffff", 16); //throws NumberFormatException By…

【Self Stack Overflow】Javaで数値を16進数文字列へ変換する方法

自問 Javaで数値を16進数文字列へ変換する方法を教えてください。 ベストアンサー long型かint型の場合、Long.toHexString()またはInteger.toHexString()を使用する。 "0x"+Long.toHexString(-1L) //"0xffffffffffffffff" "0x"+Integer.toHexString(-1) //"0…

Java 外部からベースメソッド(super.)をコールする

継承クラスが親クラスを破壊する方法

Android Studio 3.6 【新機能】ViewBindingを使用してUI参照を簡単に取得する

先日Android Studio 3.5 -> 3.6へアップデートして、新機能をチェックしていた中で、ひとつ目に留まったのがViewBinding。 build.gradle(app) android{ compileSdkVersion… : viewBinding.enabled = true : } これを追加すると、レイアウトファイルに対し…

Android Studio 3.6 Fragment用のオプションメニューを追加しようと思ったら、onCreateOptionsMenuが呼ばれない。onPrepareOptionsMenuも呼ばれない。

Activityでオプションメニューを生成し、Fragmentからもオプションメニューを追加したいと思った時、 Fragment#onCreateOptionsMenu または Fragment#onPrepareOptionsMenu をオーバーライドするが、これだけでは不十分。 Fragment#onCreateView内でsetHasOp…

Java 固定容量のLimitedSet

固定容量のHashSetが欲しくて、ググったらjavaのライブラリには無いみたいで、ArrayListを継承したりして実装する例があったが、Iteratorとか全部Overrideするとめんどくさい。 個人的に欲しかった機能は、固定容量のSetがあって、容量が足りなくなった時に…

Android Studio 3.5 GitHubのリポジトリを変更する

作っているうちにアプリ名が変わったりして、GitHubのリポジトリ名を変えようと思ったら、 あれ?Android Studio側のリポジトリの参照ってどうやって変更するの? となった時のメモ。 git自体の知識がほぼ無いので、どういう事か説明できないのであしからず…

Android Studio 3.5 直列処理Executorのサンプル

Executorは別スレッドで非同期処理をいくつも実行するのに役立つ。 ThreadPoolExecutorを使うとスレッドを再利用しつつ非同期処理を連続して行える。 Executor executor = new ThreadPoolExecutor( corePoolSize, //スレッド数 maximumPoolSize, //最大スレ…

Android Studio 3.5 ApplicationクラスのライフサイクルとHandler#postの挙動

Applicationクラスのライフサイクルめも 経緯 new Handler().postってアプリを離れても動いてる!!!!???? Applicationクラスのライフサイクルメソッド public void onCreate() アプリケーション起動時 public void onTerminate() エミュレート環境で…

Android Studio 3.5 マニフェストファイルの様々な設定値を参照する方法

プログラム上からAndroidManifest.xmlなどの設定値を参照する方法。 Activity activity = this; //例えばActivity内で実行した場合 Context context = activity; PackageManager packageManager = context.getPackageManager(); try { //アプリアイコン Draw…

Android Studio 3.5 NavigationUIを使用してFragmentをリロードする

タイトルは短すぎて意味が正確ではないかも。 「NavigationUIを使用している場合に、メニューから遷移可能な宛先画面(Destination)をリロードする。」 もし、NavigationUIを使っていないなら、NavController#navigateで遷移すればいいです。経緯 Android Stu…

AndroidのViewPagerのスワイプを一時的に無効化

ViewPagerのsetEnabledを設定してもスワイプを無効化できない。 そこでググったら code-examples.net 様々な方法を編み出してて笑った。 みんなViewPager好き過ぎ。 結局ViewPagerを継承し、setPagingEnabledを追加する方法を採用した。 //引用元 https://co…

Android Studio 3.5.0 のナビゲーションドロワーアクティビティを読み解く

Android Studio 3.5でアクティビティの新規作成から選べるテンプレートの「Navigation Drawer Activity」を読み解く。ついでにテンプレートのバグ退治もします。

【Javaジェネリクス】自身(継承クラス)を返す抽象メソッド、擬似自己型(自己参照型ジェネリクス)

abstract SubClass self(); //こういうことをしたい時の裏技

Javaで日時を扱おうとした人の感想

10人中10人「(# ゚Д゚)は?」

Excelの"取得と変換"(Power Query)を使ってみよう😎

人知れずExcel2010でPower Queryとして実装され、Excel2016で取得と変換に改名。 世界のExcelユーザの99.99%が利用していないと思われる"取得と変換" 私は4年前に仲良くなれました。

Android Studio 3.4でListViewを斜めスクロールする方法(今更感) Diagonal Scroll!!

ListViewでまさかの斜めスクロールを実現。Diagonal Scroll Sample Code!!

Android Studio 3.4でListViewおよびGridViewを使うサンプルコード

Androidでリスト形式のUIを使いたい場合、ListViewやGridViewが手ごろです。 しかし、データの表示には奇怪なAdapterクラスを使用しなければいけません。 個人的にAdapterはだいっっっっきらいですが、少しだけ打ち解けたのでサンプルコードを置いておきます…