テック-Android

Android WebViewに直接HTMLを記述する

WebViewに対して、さらっと書き捨てのHTML等を直接記述出来ます。 val webView = findViewById<WebView>(R.id.web_view) webView.loadData("<a href=\"https://www.google.com\">グーグル検索</a>", "text/html", "utf-8") 何が便利か? クッションページが必要だけど、敢えてHTMLファイルとして作成するほど</webview>…

Android Kotlin 怖くないAsyncTaskLoader

タイトルは釣りです。すいません。 AsyncTaskLoaderを気軽に使えるように整理したのでメモとして残しておきます。 基本形 別スレッドでの処理はAsyncTaskLoaderのloadInBackgroundに記述 loadInBackgroundで完了した処理データをUIスレッドで操作するにはLoa…

Android KotlinでDialogFragmentを扱う

Javaで記述したDialogFragmentをKotlinに自動変換行った時、 method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter savedInstanceState とエラーが出ることがあります。これはエラーメッセージの通りsavedInstanceStateにnullが渡され…

Android プラットフォーム リソースにアクセスする

Androidにはデフォルトで用意されているアイコンとして利用可能な豊富なdrawable プラットフォームリソースがあります。 プラットフォームリソースを確認する Layout EditorのAll attributeから確認するのが簡単です。 のアイコンを押下し、Drawable -> andr…

Android ListViewに変更を通知する

一度、表示されたListViewに対して変更された内容を通知する方法。 よくあるケースとして セルデータの編集・削除を行った ネットワークを通じて新しいデータを取得 などが想定されます。 例としてListViewのitemを長押しして選択対象を削除するというユース…

Android ActionBar/toolBarにmenuItemを配置

アコーディオンメニューとなるアイテムを設置 よくある以下のようなアコーディオンメニューを設置します。 以下の例はActionBarに設置したものです。 リソースファイルの作成 res/menu/にmenu resource fileを作成します。 main_menu.xml <menu xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android"> </menu>

Android ActionBarとToolBarについてのメモ

この2つの違いが曖昧なので、調べたことをメモしておきます。 ActionBar どこで定義されている? まずActionBarについて。ActionBarはアプリのテーマとして自動で定義されているもの。定義は、AndroidManifest に <application <!-- 中略 --> android:theme="@style/AppTheme > として</application>…

Android SQLiteの使用とmigration

schemaの作成 スキーマはSQLiteOpenHelperを実装したクラスで作成する。 DB_VERSIONはmigrationを行う際にインクリメントすることでonUpgrade()に渡される。 val DB_NAME = "MyApplication" val DB_VERSION = 1 class MyApplicationDBOpenHelper(context: Co…

Android toolbarと配置するitemについてのメモ

所謂この部分、ツールバー?(iOSではナビゲーションバーかな?)と呼ぶらしいんだけど、これについての取り扱いについて色々ハマったのでメモ。 タイトル名を変更 toolbar.setTitle("ツールバー") または、 setSupportActionBar(toolbar) supportActionBar?.s…

Android kotlin Activity間のオブジェクトの受け渡し

"intent object 渡す"とかでググると色々ヒットするが、渡されたオブジェクトは呼び出し先で新しく生成されたオブジェクトとして扱われることを備忘として書いておく。 例えば、以下のような定義のオブジェクトを渡す場合 class DataState( var data:String …

Android Kotlin ListViewの次のN件の読み込み

よくあるListViewの最終セルに次のN件の読み込み的なやつ。ページネーションと読んでいいのかどうか。 Activity class MainActivity : AppCompatActivity() { lateinit var myListView:ListView lateinit var myAdapter:MyAdapter val listItems = ArrayList<String></string>…

Kotlin bitmapの扱い

ByteからBitmap public fun ByteToBitmap(bytes:ByteArray):Bitmap{ val opt = BitmapFactory.Options() opt.inJustDecodeBounds = false return BitmapFactory.decodeByteArray(bytes, 0, bytes.size, opt) } //ImageViewに画像をセット ImageView.setImage…

Android 共有ストレージアクセス

アクセス権限の確認 & 取得 ダイアログで権限の許可 or 拒否の操作完了時にonRequestPermissionsResult()がコールバックされる。 fun accessStorage(){ if(ContextCompat.checkSelfPermission( activity!!, Manifest.permission.READ_EXTERNAL_STORAGE) == P…

Android Kotlin ActivityからFragmentを追加

supportFragmentManagerでlayoutにfragmentを割り当てる class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val fragment = M…

Android AppWidgetProviderのインスタンス調査

widget間で値共有できるか調査してみたのでメモ Widgetごと、ライフサイクルごとにインスタンスが生成されているみたい。なので、いくらこういうことをしても class MyWidget : AppWidgetProvider() { private var numberCount = 0 override fun onUpdate(co…

Android Kotlin SoundPool()のdeprecated対応

SoundPool() はAPI LEVEL 21 から非推奨。 'constructor SoundPool(Int, Int, Int)' is deprecated. Deprecated in Java 21以降はSoundPool.Builder()でインスタンスを構築する。 //Lollipop未満 if(Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP){…

kotlin 内部クラスから外側クラスのメンバ参照

クラスのネスト記述 class OuterClass { var foo = "" class InnerClass {} } 内部クラスから外部クラスのメンバを参照 InnserClassからOuterClassの var Foo を参照するには、内部innerクラスとして宣言する class OuterClass { var foo = "" inner class I…

kotlin コンストラクタのオーバーロード

kotlin コンストラクタ記述の基本形 primary constructor class Foo(str:String) : Bar(str){ } この場合、Fooとその親クラスにStringを引数とするコンストラクタが定義された、されていることになる。また、クラス宣言で記述するclass Foo(str:String)はプ…

kotlinでSnackbarを設定する

Snackbar.make( findViewById<View>(android.R.id.content), "表示メッセージ", Snackbar.LENGTH_SHORT) .setAction("表示するアクションボタン名称", {v -> //アクションボタンが押下された時の処理を記述 }).show() 例えばアクションボタンを「戻る」にする場合 </view>…

Android Studioのインストール

CodeZineさんのこちらの記事を見ながらAndroidアプリ開発の勉強を始めています。 codezine.jp この記事、とても親切丁寧で大変わかりやすいです。 Android Studioのインストール 自分の環境はMacなので、 Download Android Studio and SDK tools | Android D…