2020-01-01から1年間の記事一覧
ここでは正規表現の文法については扱いません。 Regexのメソッドの使い方にいつも悩むので、 その覚書としてのメモになります。 perlの正規表現は、$str=~ /abc/と書きさえすれば、 正規表現を活用するあらゆる処理が可能となりますが、 kotlinだとなかなか…
androidではあまり使う機会はないかもしれませんが、 応用できるので、使用経験があまりない方も知っておいて損はないかと思います。 拡張子を取り除く方法について、 ネットを調べると、splitやlastIndexOfを用いた方法がたくさんヒットするのですが、 これ…
今回、バッチプログラムを書くにあたり、 せっかくなのでバッチでもkotlinを使ってみようと、 IntelliJ IDEAでkotlinのプロジェクトを作ってみたら、 タイトルのとおり、何故かjava.~に由来するクラスが一切使えない状態でした。 build.gradleファイルを触…
Androidアプリを作れば、やはり収益に結びつけたくなるのが人情。 と言うわけで、バナー広告を設置します。 但し、ここではサンプルIDを用いて広告が表示されるのを確認するまでとします。 実際にアプリを公開する際には、 自身でIDを発行し、それに差し替え…
EditTextにフォーカスを当てるとソフトウェアキーボードが表示されます。 でも、そのキーボードは、入力が完了しても表示されたままなのですよね。 で、ネットで調べるとonFocusChangedイベントで非表示にすればいいと書かれたものが多いのですが、 フォーカ…
Javaのコードをkotlinに変換した時によく遭遇するのですが、 リソースデータが見えなくなることがあります。 そんな時は、おかしなファイルがimportされていないかどうかをチェックしてください import android.R この行を消せば直ります。
ステータスバーやナビゲーションバーなど、 画面関係のサイズや座標を取得します。 activity引数には、Activityから呼び出す時はthisを指定すればOKです。 ディスプレイサイズの取得 fun getRealDisplaySize(activity: Activity): Point { val outSize = Poi…
kotlinの話ではないですが...(^^; チェックボックスもラジオボタンも、 普通に設置するとマークはテキストの左に表示されます。 これを右にするための設定です(必要な部分だけ)。 <CheckBox ・・・ android:button="@null" android:drawableRight="?android:attr/listChoiceIndicatorMultiple" /> </checkbox>
オプションメニューに、チェックボックスとラジオボタンを付けます。 また、ラジオボタンはサブメニュー化します。 注意点としては、選択状態の切替えは、自分でプログラムを書くこと。 何も書かないと、クリックしても選択状態にはなりません。 res\menu\me…
アプリバーとかアクションバー、ツールバーなどと呼ばれるタイトルバー部分に、 オプションメニューを付ける方法です。 まずは、リソースデータから。 res\menu\menu_main.xml <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> </menu>
コンパイルは通るのに、実行時に落ちる。 java.lang.RuntimeException: Unable to start activity ~: Binary XML file line ~: Error inflating class ~ デバッガで確認してみると、リソースが原因で落ちている模様。 ネットで調べてみると、リソースがみ…
kotlinでは、SAM変換を利用してシンプルな形でイベントリスナを記述できますが、 正規の書き方で書いた時とシンプルな形で書いた時で、 thisが違うものを指します。 今回、イベント内でthisを使う必要が出て、気付きました。 kotlin流 button.setOnClickList…
カスタムViewの書き方 class CustomView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 ) : RelativeLayout(context, attrs, defStyleAttr) { ・・・ init { ・・・ } } 上記サンプルはRelativeLayout…
Java風の書き方もできますが、 interface OnSampleListner { fun onSample(int: Int) } class Sample { var sampleListner: OnSampleListner? = null fun sampleMethod() { sampleListner?.onSample(1) } } fun main() { val sample1 = Sample() sample1.sam…
多分、知ってる人は知ってるごく当たり前な話なのだとは思いますが、 私は知らなかったので、実験です。 親クラス内から呼び出された継承可能なメソッドは、 子クラスから呼び出された時に、 オーバーライドされたメソッドが動くのか?と言う実験です。 つい…
ここに機能の90%が共通のViewが2種類あります。 これらのViewは、以下のように5パターンの作り方があるかと思います。 1.それぞれ別に作る 2.一方のViewをもう一方が継承する 3.共通機能部分でBaseになるViewを作り、それぞれがBaseを継承する 4.抽象ク…
Operator overloading Javaは演算子のオーバーロードができないそうですが、 kotlinはできるようです。 なので、昨日UPしたMyDateクラスに早速実装してみましたヾ(´∀`)ノ 計算式によって、日付を加算したり差分(期間)を求めたりできるようになりました。 …
kotlinで日付を扱おうと検索したところ、 LocalDateを使うとのことでしたが、 これを使うと @RequiresApi(Build.VERSION_CODES.O) と言うアノテーションを入れろと言われました。 調べてみると、Android 8.0 Oreo (API Level 2.6)以降でしか動かないことの宣…
kotlin流の書き方では、 プログラムでクラスを初期化する際には、 initブロックに書くようです。 ただ、 このinitブロックの実行タイミングが変数の初期化と同様書かれた順であることから、 変数の宣言より上に書かれていると、 初期化される前に参照するこ…
初めまして、ことりん(仮名)です。開発の備忘録として、blogを作ってみました。 何を書くか深くは考えていませんが、プログラミングしていると色々と感じることが出てくるので、それらをつらつらと書いて行きたいと思います。 まず初めに、 なぜkotlinを使…